2010-12-21 37 views
1

對不起,沒有問題。jQuery選擇菜單頂部的里氏

我有一個類似的菜單:

<div id="navigation"> 
    <ul> 
    <li><a href="url">menu item</a></li> 
    <li><a href="url">menu item</a> 
     <ul> 
     <li><a href="url">sub menu item</a></li> 
     <li><a href="url">sub menu item</a> 
      <ul> 
      <li><a href="url">sub sub menu item</a></li> 
      <li><a href="url">sub sub menu item</a></li> 
      <li><a href="url">sub sub menu item</a></li> 
      </ul> 
     </li> 
     <li><a href="url">sub menu item</a></li> 
     <li><a href="url">sub menu item</a></li> 
     </ul> 
    </li> 
    <li><a href="url">menu item</a></li> 
    <li><a href="url">menu item</a></li> 
    </ul> 
</div> 

我試圖改變類所選頁面。我與這一部分的方式:

$(function(){ 
    var path = location.pathname.substring(1); 
    if (path){ 
    $('#navigation a[href$="' + path + '"]').parent().attr('class', 'selected'); 
    } 
    }); 

其中更改父李的類。涼。但我真正想要做的是改變頂級李的課程。換句話說,如果選擇了「子子菜單項」,則會一直沿着該樹並更改包含該鏈接的第一個li。

希望得到任何幫助。

謝謝,

Andy。

回答

6

尋找適合的<li>,這樣你可以使用.parents():last(因爲它們的順序發還發現...回到父母是最後一個):

$('#navigation a[href$="' + path + '"]').parents('li:last').addClass('selected'); 

而且.addClass()可能就是你「經過重新在這裏:)

0

使用>

$('#navigation > ul > li > a[href$="' + path + '"]')

0
$('#navigation>ul>li:has(a[href$="' + path + '"])')