JQuery Selector - выбор родителей, но не детей - PullRequest
1 голос
/ 01 сентября 2011

Я пытаюсь использовать jquery, чтобы выбрать элемент и добавить класс к этому элементу.Мой HTML похож на следующее:

<ul id="top">
    <li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor">
    <a href="#">Corporate</a>
        <ul class="sub-menu">
            <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11">
                <a href="#">Press</a>
            </li>
            <li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-88 current_page_item menu-item-90">
                <a href="#">Press</a>
            </li>
        </ul>
    </li>
    <li><a href="#"></a></li>
    <li><a href="#"></a></li>
    <li><a href="#"></a></li>
    <li><a href="#"></a>
         <ul class="sub-menu"><li><a href="#">Link</a></li></ul>
    </li>
</ul>

Я хотел бы добавить класс «стрелка» для каждой ссылки привязки, которая является прямым потомком элементов <li> первого уровня.Другими словами, я бы хотел, чтобы «корпоративная» ссылка имела класс «стрелка», но не должна иметь привязки внутри .submenu, чтобы иметь этот класс.Я пробовал следующий jquery ($("li.current_page_ancestor a:nth-child(1)").addClass("arrow");), но он добавляет класс к каждой ссылке привязки, что имеет смысл.Как мне просто добавить этот класс к ссылкам привязки, которые являются прямым потомком элементов списка верхнего уровня?

Ответы [ 2 ]

0 голосов
/ 01 сентября 2011

Как это?

$('ul#top > li > a').addClass('arrow')

css-селектор ">" означает "прямой потомок" или "прямой потомок".

0 голосов
/ 01 сентября 2011

> является дочерним селектором:

$('li.current_page_ancestor > a').
  add($('.sub-menu').parent().children('a')).
    addClass('arrow');
...