2012-05-10 21 views
0

私はjQueryコードで変数として使用するセレクタを組み合わせる最良の方法を考えています。セレクタを常に変数として使用したいのですが、時にはそれらを1つのステートメントで使用したいので、それを行う最もエレガントな方法が何であるか考えています。セレクタをjQueryで変数として組み合わせる

add((x + y).function ...)を使用する必要がありますか?または文字列を追加するか?それとも - あなたは、単一の結果に結合するセレクタの任意の数を指定することができ

x = $('#selectorOne'); 
y = $('#selectorTwo'); 

答えて

1

Multiple Selector (“selector1, selector2, selectorN”)(ある$)だけなので、私は、単一のjQueryのステートメントの中で組み合わせることができます名前のIDとしてjQueryの変数を保持します。この多重表現コンビネータは、異なる要素を選択する効率的な方法です。返されたjQueryオブジェクト内のDOM要素の順序は、ドキュメント順になるので同一ではない場合があります。

例:

$("div,span,p.myClass").css("border","3px solid red"); 

または

.add()

- マッチした要素の集合に要素を追加します。

例:

$("p").add("div").addClass("widget"); 
+0

こんにちは、回答altho複数のセレクタが私が知っている何か、それは私の問題のケースではない、altho addメソッドは私の変数のケースに適用されます。 – Malyo

5

あなたは配列に格納することができます

var selectors = [ 
    '#selector1', 
    '#selector2', 
    .... 
]; 

を、あなたはすべてを一緒に使用する場合は、カンマをんがjoin()

var alljoined = selectors.join(','); //join ALL selectors 
$(alljoined).doSomethingToAll();  //and do something to all 

を分離しました選択的に選択することもできます:

0123彼らはあなたが add()を使用することができます変数として宣言している場合
var fewjoined = [     //select a few selectors... 
    selectors[1], 
    selectors[3], 
    ... 
].join(',');      //..to join 
$(fewjoined).doSomethingToAll(); //and do something 
+0

私はこれをいつも使っています。 – elclanrs

+0

ありがとう!これはこれを解決する最もエレガントな/効果的な方法ですか? – Malyo

+0

@Malyo実際にそれには多くの方法があります。これは私が記事を読むときに最初に気づいたことです。また、個別に呼び出して後で結果をマージするのではなく、すべてのセレクタを一度呼び出します。 – Joseph

0

xとyは、単なる配列なので、人はそれらを組み合わせることjQuery.mergeを使用することができます。 HTH

+0

まあ、私は$ステートメントを内部に保持したいので、$ステートメントを$ satementに追加するのは良い解決策のようには見えません – Malyo

関連する問題