jQuery:如何选择除了___之外的所有元素?

19
我想要一种方法来选择页面上的所有元素,除了那些具有指定DOM位置的元素。以下是我想要做的事情的示例:
jQuery('*').except('.ignore').bind('click', function(e) { ... });

这是否可以通过 "本地jQuery" 的方式实现?

4个回答

30
你想要使用 :not() 选择器:
jQuery(":not(.ignore)").bind("click", function(e) { ... });

啊,我猜想我例子中的星号可能是多余的。 - Matt Ball
1
现在看起来,我认为没有星号更好。 - Andrew Hare
嗯,我在想当调用时是否可以使用$(':hover')来选取处于悬停状态的元素。 - trusktr

24

另一种方法是,如果您已经有了两者的选择器:

$('.foo').not('.ignore').bind(...);

此外,更多的过滤器


8

2

另一方面,同时对页面上每个元素执行某些操作是不好的。有一个更好的方法。我建议绑定到body,然后忽略一些元素的点击:

$(document.body).click(function(e){
    if($target.closest('.ignore').length) return true;
    ...
});

或者使用jQuery 1.3的.live(),它可以为您完成以下操作:

 $(":not(.ignore)").live(function(e){
    ...
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接