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){
    ...
});
Share:
17,928

Related videos on Youtube

mO_odRing
Author by

mO_odRing

Updated on September 24, 2020

Comments

  • mO_odRing
    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?