2011-12-08 55 views
0

是否有可能在循環內部生成一個選擇器和方法鏈?在循環中使用jquery的鏈接方法和選擇器

例如,我有元件的陣列:

array[0] = '.type1value1, .type1value2, .type1value3'; 
array[1] = '.type2value1, .type2value2, .type2value3'; 
array[2] = '.type3value1, .type3value2, .type3value3'; 

我不知何故需要使用數組元素作爲選擇建立的方法的鏈條,這樣我就(通過循環或任何其他可能的手段!)結束與以下內容: -

$('.type1value1, .type1value2, .type1value3').filter('.type2value1, .type2.value2, .type2value3').filter('.type3value1, .type3value2, .type3value3'); 

回答

1

如果我理解正確的話,你甚至都不需要做一個循環:

var firstSelector = array.shift(); //returns first item in the array and removes it from the original array 
var filterSelector = array.join(','); 

$(firstSelector).filter(filterSelector); 
1

爲什麼你就不能這樣做:

var $test = $(array[0]); 

for (var i = 1; i < array.length; i++) { 
    $test = $test.filter(array[i]); 
} 

看着你的榜樣,每個數組元素的值正是你想要的選擇參數傳遞給.filter()

1

利用價值以下函數將它傳遞給一組選擇器...

function getSet(arrSet){ 
    var elements = $(arrSet[0]); 
    for (var i = 1; i < arrSet.length; i++) { 
     elements = $(elements).filter(arrSet[i]); 
    }      
} 
+1

'elements'已經是一個包裝的JQuery集合,因此您不需要'$()'包裝它來調用'.filter' – njr101