在循环内部使用jquery链接方法和选择器

时间:2011-12-08 12:34:34

标签: javascript 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');

3 个答案:

答案 0 :(得分: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 :(得分:1)

为什么你不能做这样的事情:

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

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

查看您的示例,每个数组元素的值正是您要作为选择器参数传递给.filter()

的值

答案 2 :(得分:1)

使用以下函数将选择器数组传递给它......

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