Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery selectors - find objects without specified attribute

I have several objects on a page and I want to perform an operation using jQuery only on some of them - the ones that don't have a specified attribute. So:

<li style='...'>some text</li> <li style='...'>some other text</li> <li>some very diffrent text</li> 

and in javascript I would have:

$('li[style]').hide(); 

that would hide all elements with a style sttribute. But if I want to hide the ones without it, how should my selector look like?

like image 410
kender Avatar asked Dec 28 '09 11:12

kender


2 Answers

jQuery("li:not([style])").hide(); 
like image 184
vrutberg Avatar answered Sep 29 '22 22:09

vrutberg


You can use the :not psuedo-selector to look up elements that don't match a certain selector. In your example, you want to select all li elements without the style attribute, so you'd use something like this:

$('li:not([style])').hide(); 

You can also combine this with other selectors:

$('#div input:not(:checked)').show(); 

It's a pretty powerful tool!

like image 32
Jamie Rumbelow Avatar answered Sep 29 '22 22:09

Jamie Rumbelow