1

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");) を試してみましたが、すべてのアンカー リンクにクラスが追加されます。これは理にかなっています。トップレベルのリストアイテムの直接の子であるアンカーリンクにそのクラスを追加するにはどうすればよいですか?

4

2 に答える 2

0

>子セレクタです:

$('li.current_page_ancestor > a').
  add($('.sub-menu').parent().children('a')).
    addClass('arrow');
于 2011-09-01T00:03:03.367 に答える
0

このような?

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

css-selector " > " は、「直系の子孫」または「直系の子」を意味します。

于 2011-09-01T00:03:32.030 に答える