How to select an element which parent is not specified class?
I want to hide an element if its parent does not have a certain class:
HTML
<li class="current_page_parent">
<a href="parent.html">Parent</a>
<ul class="children">
<li>foo</li>
<li>bar</li>
</ul>
</li>
jQuery
jQuery("ul.children").hide();
Currently always hides <ul class="children">
regardless of class. I would like to close it only if parent is :not
an <li class="current_page_parent">
.
I've tried:
jQuery("ul.children:not(:parent.current_page_ance开发者_开发技巧stor)").hide();
with no luck.
The best way I think:
$(".children").not(".current_page_parent .children").hide();
JSFiddle
Try this:
jQuery("li:not(.current_page_parent) ul.children").hide();
$('ul').filter(function() {
return $(this).parent('.current_page_parent').length === 0
}).hide();
You probably want to first filter out the ul
elements with a "bad" parent and then select all the children:
jQuery("ul:not(:parent.current_page_ancestor).children")
精彩评论