javascript - jQuery 选择菜单的顶部 li

标签 javascript jquery css-selectors

抱歉这个菜鸟问题。

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

<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 的类。凉爽的。但我真正想做的是改变顶级 li 的类(class)。换句话说,如果选择了“子子菜单项”,则会一直沿树向上移动并更改包含该链接的第一个 li。

非常感谢任何帮助。

谢谢,

安迪。

最佳答案

您可以使用 .parents() :last (因为它们是按照找到的顺序返回的……顶级父级是最后一个)在寻找 <li> 时,像这样:

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

还有 .addClass() 可能是您想要的:)

关于javascript - jQuery 选择菜单的顶部 li,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4499184/

相关文章:

javascript - 从 JSON、Node.js 获取值

javascript - 使用 JQuery 在 td 单击或复选框单击时更改 td 的 CSS

jquery - 覆盖引导日期选择器的选项

css - h1 em 和 h1 > em 的区别

javascript - 在 fullpage.js 中使用 bootstrap Accordion

asp.net - 如何使用 UTC 时间(asp.net 和 ajax)向用户呈现本地时间

javascript - Bootstrap Accordion 展开/折叠全部无法正常运行

javascript - 使用 jQuery 更改所有外部链接

java - 单击部分标记内的元素

javascript - 如何在 JavaScript 中选择某个元素的最后一个