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){ ... });