我正在寻找一种方法来选择页面上的所有元素,除了那些具有指定DOM位置的元素。以下是我想要做的一个例子:
jQuery('*').except('.ignore').bind('click', function(e) { ... });
这可能是以“原生jQuery”的方式吗?
答案 0 :(得分:30)
您想使用:not()
选择器:
jQuery(":not(.ignore)").bind("click", function(e) { ... });
答案 1 :(得分:24)
答案 2 :(得分:8)
$('*: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){
...
});