2012-05-10 33 views
0

我在想什麼是組合選擇器的最佳方式,我在jQuery代碼中使用它作爲變量。我總是希望使用選擇器作爲變量,但事情是有時候我想在一個語句中使用它們,所以我在想什麼是最優雅的方式來做到這一點。在jQuery中結合選擇器作爲變量

我應該使用add((x + y).function ...)嗎?或者可能添加字符串?或者,也許保持jQuery的變量,只有名稱ID,所以我可以單jQuery的語句中聯合($那是)

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

回答

3

如果他們聲明爲變量,你可以使用add()

x.add(y).something(); 
1

Multiple Selector (「selector1, selector2, selectorN」) - 你可以指定任意數量的選擇的結合成一個結果。這個多表達式組合器是一種選擇不同元素的有效方法。返回的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 

您還可以選擇性地選擇:

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

好吧,但我想保留$語句裏面,所以添加$語句與$語句似乎不是一個很好的解決方案 – Malyo