如何选择父类未指定类的元素?

时间:2011-07-22 01:23:38

标签: jquery jquery-selectors

我想隐藏一个元素,如果它的父元素没有某个类:

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();

目前始终隐藏<ul class="children">,无论课程如何。我想仅在父级为:not<li class="current_page_parent">时关闭它。

我试过了:

jQuery("ul.children:not(:parent.current_page_ancestor)").hide();

没有运气。

4 个答案:

答案 0 :(得分:39)

我认为最好的方式:

$(".children").not(".current_page_parent .children").hide();

JSFiddle

答案 1 :(得分:30)

试试这个:

jQuery("li:not(.current_page_parent) ul.children").hide();

答案 2 :(得分:2)

您可能希望首先过滤出“{1}}元素与”坏“父级,然后选择所有子级:

ul

答案 3 :(得分:2)

$('ul').filter(function() {
    return $(this).parent('.current_page_parent').length === 0
}).hide();