2010-12-21 33 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 + '"])')