使用jQuery通过索引获取多个元素

时间:2012-08-07 17:21:56

标签: jquery jquery-selectors

有没有办法使用jQuery通过索引获取多个元素 - 类似于.eq(),但是你可以传入数组而不是单个索引?像这样:

var arrIndexes = [0, 4, 5];
var stuff = $("#datatable tbody tr").eq(arrIndexes).css('background-color', 'red');

2 个答案:

答案 0 :(得分:8)

只需使用filter(index)中的第一个参数,然后使用indexOf

查找它
var arrIndexes = [0, 4, 5];
$("#datatable tbody tr").filter(function(index) {
    return arrIndexes.indexOf(index) > -1;
}).css('background-color', 'red');

演示:http://jsbin.com/ivexut/1/

如果您需要旧浏览器,可能需要添加函数indexOf:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf

答案 1 :(得分:3)

您可以使用jquery的过滤功能对选择器返回的对象集合应用自定义过滤器。您可以阅读有关过滤器的更多信息 here

<强> Live Demo

$("#datatable tbody tr").filter(function(){
   if(arrIndexes.indexOf($(this).index()) != -1)
       return $(this);
}).css('background-color', 'red');