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?
jQuery("li:not([style])").hide();
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!
Try:
$('li:not([style])').hide();
You may find it clearer and more performant to use the .not()
method instead of the selector. As an example:
$('li').not('[style]').hide();
This is also what the jQuery devs recommend.
精彩评论