除了数组中的属性之外的所有元素的jquery选择器

时间:2013-08-23 18:21:20

标签: jquery

我有一个包含数组的页面:

var idlist = ['ID1', 'ID2', 'ID3'];

此数组引用我的HTML中的<div>和这些ID。这些<div>中的每一个都有一个类.tabPage

我正在尝试编写一个以所有div.tabPage元素为目标的选择器,除了我的数组中有ID的元素。我在jQuery文档中找到了.not()函数,但是如何为多个值执行此操作?

3 个答案:

答案 0 :(得分:5)

我建议:

$('div.tabPage').not('#' + idlist.join(', #'));

JS Fiddle demo

如果您更喜欢更详细的方法,则可以使用过滤器(将删除或保留选择中的元素):

$('div.tabPage').filter(function(){
    return idlist.indexOf(this.id) === -1;
}).addClass('jQueryFound');

JS Fiddle demo

参考文献:

答案 1 :(得分:0)

我认为如果没有在选择器中完成,可能会更清楚,但是在执行代码的主体上:

var ignoreList = ['foo', 'bar'];
$('.tabPage').each(function(){
    if(ignoreList.indexOf(this.id) > -1) return;

    // code
});

答案 2 :(得分:0)

试试这个

 $('div:not(#' + ids.join(',#')+')').end().click(function() { alert('hi'); });

http://jsfiddle.net/Jfmrn/