2011-09-01 160 views
1

我想用jquery選擇一個元素並向該元素添加一個類。我的HTML是類似以下內容:jquery選擇器 - 選擇父母但不是孩子

<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");),但它將類添加到每個錨鏈接,這是有道理的。如何將該類添加到頂級列表項的直接子節點的錨鏈接?

回答

0

>爲孩子選擇:

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

工作得很好。我也想將這個箭頭類添加到.sub菜單的父級內的所有錨鏈接。我剛更新了上面的例子。在這個例子中,我想將箭頭類添加到我的代碼中的絕對最後一個錨鏈接上(子菜單正上方的那個鏈接) – JCHASE11

+0

總和菜單上方的錨怎麼樣?它在其中: -/ – Alxandr

+0

@JCHASE我更新了我的帖子,以反映您的問題中的更改 – Paulpro

0

喜歡這個?

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

css-selector「>」的意思是「直接繼承人」或「直接子女」。

+0

這選擇每個錨,沒有好 – JCHASE11

+0

不:http://jsfiddle.net/XerJh/ – Alxandr

+0

你確定這不是隻是你的CSS弄亂了事情嗎? – Alxandr