-
ID:okF.1v さんの質問

jqueryについて、かれこれ100年くらい悩んでいるので教えて下さい。

var $hoge = $("#hoge");
var $huga = $("#huga");

変数である$hogeと$hugaを結合して一つの変数にまとめることはできますか?
例の場合は、素直に$("#hoge,#huga")でよいのですが、もっとセレクタが複雑な場合に結合したくなるケースがあります。

みんなの回答 1 件

ID:KpkdFm さんの回答

単純にaddすればいいのかな。

var $hoge = $("#hoge");
var $huga = $("#huga");

var $hogehuga = $hoge.add($huga);

目的があってるのかわからないが、これで$("#hoge,#huga")のように、別のjQueryオブジェクトが作られます。

ID:KpkdFm

もし宣言済みの複数のオブジェクトに対して、イベントをバインドしたいんだったらこんな感じのeachでもいいんじゃないかな。

$.each([$hoge, $huga], function(i,v) {
v.on( ... );
});

ID:okF.1v

なるほど、勉強になります。
addがまさにそれでした。
イベントをバインドするのが主な目的になりますが、おっしゃるように、ループでとりまわしたり、単純に

var fn = function(){...};
$hoge.on("click",fn);
$huga.on("click",fn);

などでも、できたりするのですが、管理面や実行速度の面で、少しでもよい書き方ができたらいいな、と思っていました。
大変参考になりました。
ありがとうございました。

最終更新日:2014-05-06 (2,415 views)

関連するトピックス

ページ上部に戻る