jQuery: Target all except ___?
17,928
Solution 1
You want to use the :not()
selector:
jQuery(":not(.ignore)").bind("click", function(e) { ... });
Solution 2
Another way, if you already have selectors for both:
$('.foo').not('.ignore').bind(...);
Also, more filters.
Solution 3
jQuery not-selector to the rescue!
$('*:not(.ignore)').bind('click', function(e) { ... });
Solution 4
On the other hand, doing something to every element on a page simultaneous is nasty. There's a better way. I would recommend binding to the body then ignoring clicks on some elements:
$(document.body).click(function(e){
if($target.closest('.ignore').length) return true;
...
});
…Or using jQuery 1.3's .live()
, which does this for you:
$(":not(.ignore)").live(function(e){
...
});
Related videos on Youtube
Author by
mO_odRing
Updated on September 24, 2020Comments
-
mO_odRing over 3 years
I'm looking for a way to select all elements on a page, except those with a specified DOM location.. Here's an example of what I'd like to do:
jQuery('*').except('.ignore').bind('click', function(e) { ... });
Is this possible in a "native jQuery" way?