开发者

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")
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜