jquery选择器 - 选择父母而不是孩子

时间:2011-09-01 00:00:16

标签: jquery selector parent-child siblings

我正在尝试使用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 :(得分:0)

>是子选择器:

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

答案 1 :(得分:0)

喜欢这个吗?

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

css选择器“&gt;”表示“直接死亡”或“直接儿童”。