2012-08-07 93 views
4

有沒有一種方法可以使用jQuery通過索引獲取多個元素 - 類似於.eq(),但是您可以傳遞數組而不是單個索引?事情是這樣的:使用jQuery通過索引獲取多個元素

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

如何只使用一個循環?你不能指望jquery擁有所有人都知道的實用方法。 – thatidiotguy 2012-08-07 17:24:39

回答

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

+0

這就是我正在尋找的東西......我將它插入我的代碼中,並且它像魅力一樣工作。謝謝! – 2012-08-07 17:53:34

3

您可以使用jQuery的過濾功能,通過選擇返回的對象的集合應用自定義過濾器,您可以閱讀更多關於過濾here

Live Demo

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