jQuery选择菜单的顶部li

And*_*ndy 1 javascript jquery css-selectors

抱歉,这是一个noobish问题.

我有一个类似这样的菜单:

<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>
Run Code Online (Sandbox Code Playgroud)

我正在尝试更改所选页面的类.我是这样的:

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

这改变了父李的类.凉.但我真正想做的是改变顶级李的班级.换句话说,如果选择"子子菜单项",则一直向上到树并更改包含该链接的第一个li.

非常感谢任何帮助.

谢谢,

安迪.

Nic*_*ver 6

您可以在查找时使用.parents():last(因为它们按照找到的顺序返回...顶级父级是最后一个)<li>,如下所示:

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

.addClass()可能是你在这里:)