抱歉这个菜鸟问题。
我有一个类似这样的菜单:
<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/