Как выбрать элемент, родитель которого не указан классом? - PullRequest
26 голосов
/ 22 июля 2011

Я хочу скрыть элемент, если его родитель не имеет определенного класса:

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 ]

40 голосов
/ 26 февраля 2013

Лучше всего мне кажется:

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

JSFiddle

30 голосов
/ 22 июля 2011

Попробуйте это:

jQuery("li:not(.current_page_parent) ul.children").hide();
2 голосов
/ 14 августа 2015
$('ul').filter(function() {
    return $(this).parent('.current_page_parent').length === 0
}).hide();
2 голосов
/ 22 июля 2011

Вы, вероятно, хотите сначала отфильтровать элементы ul с "плохим" родителем и , а затем выбрать все дочерние элементы:

jQuery("ul:not(:parent.current_page_ancestor).children")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...