2012-01-29 19 views
20

私はjquery変数を結合する方法を探しています。関連する質問を見ると、誰も私がしたいことを試しているようには見えません。jquery変数を1つのセレクタに結合しますか?

$("body, div, p")は、セレクタで結合する方法の1つですが、変数にセレクタを割り当てた後、どうやって同様の方法で結合しますか?

私が試した1つの方法ですが、動作させる方法はありません。私も配列に入れてみました($ bodyの前と$ pの後に角括弧を追加するだけです)。私の実際のスクリプトで

$body = $("body"); 
$div = $("div"); 
$p = $("p"); 
$mixed = $($body, $div, $p); 
// $mixed = $("body, div, p"); is NOT what I am looking for 

私は、変数に割り当てられたいくつかの<select>の入力を持っています。私はそれらをグループに入れたいと思いますので、<select>には "FRUIT"があり、もう1つには "VEGETABLES"があります。両方を "PRODUCE"というjquery変数に入れることができます。私は両方の両方で何かを実行する必要がある場合、代わりにプロダクトを使用します。

...これは、物事を行うにはちょっとした方法かもしれません。

+0

両方の要素が選択されていますか? – Mike

+1

これはちょうど、実際には... ** =)** – gdoron

+0

私は一緒にグループ化する必要があるものをチェリーピックしたいものを行うにはちょっと愚かな方法かもしれません。私は、これはすべてのIDを与えることでこれを行うことができると思いますが、プログラム的に追加されているので、属性を使用せずに追加することをお勧めします。 –

答えて

42

おそらく.add()をお探しですか?

$mixed = $body.add($div).add($p); 
+0

あなたは私を冗談にしなければなりません。私はこれを長い間探し求めました...私はそれが存在するとは思わなかった。 私は「追加」という用語を探すことは考えていませんでした。 ( "Combine"はページにも見つかりません、fml) –

+0

@ RadGH - 正しい場合は、この回答を受け入れるようにしてください。 –

+0

10分待機タイマー! –

0

私もこのようなものを探していました。私の場合、いくつかのオブジェクトを共通の関数に渡し、いくつかのオブジェクトをメモリに作成して、すべてのオブジェクトに同じクリックイベントを適用したかったのです。結局、私は上記のJamesの追加ソリューションに行ったが、別の選択肢を共有すると思った。

オブジェクトを配列に配置する場合は、各イテレータを使用してアクションを実行できます。

[$body, $div, $p].each(function(i,e) { e.DoSomething(); }); 

この構文は長く、再利用可能な$混合オブジェクトを取得しませんが、これが便利なシナリオがいくつかあります。私にとって

2

、それはjQueryのコンストラクタに渡す前に、配列リテラル内の要素を組み合わせて、単純にjQueryの1.10.2で正常に動作します:$mixed = $([$body, $div, $p]);あなたは `$(「選択」)`以来使用していないWhhy

+0

私のために働いていません。バージョン1.11 – Boykodev

関連する問題