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

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

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

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

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

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

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

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

此外, 更多的filter 。

jQuery not-selector来救援!

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

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

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

…或者使用jQuery 1.3的.live() ,它会为您执行此操作:

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