jQuery:除了___以外的所有目标?

时间:2009-09-23 16:41:08

标签: javascript jquery events dom

我正在寻找一种方法来选择页面上的所有元素,除了那些具有指定DOM位置的元素。以下是我想要做的一个例子:

jQuery('*').except('.ignore').bind('click', function(e) { ... });

这可能是以“原生jQuery”的方式吗?

4 个答案:

答案 0 :(得分:30)

您想使用:not()选择器:

jQuery(":not(.ignore)").bind("click", function(e) { ... });

答案 1 :(得分:24)

另一种方法,如果你已经有两个选择器:

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

另外,more filters

答案 2 :(得分:8)

jQuery not-selector救援!

$('*:not(.ignore)').bind('click', function(e) { ... });

答案 3 :(得分:2)

另一方面,同时对页面上的每个元素做一些事情是令人讨厌的。还有更好的方法。我建议绑定到正文然后忽略对某些元素的点击:

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

...或者使用jQuery 1.3的.live(),它会为您完成此任务:

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