我正在使用带有嵌套<ul>
列表的jQuery实现菜单栏,其中每个<li>
包含<a>
标记。鉴于我可以通过href属性匹配特定的<a>
标签,我如何走菜单以便到达最顶端的<li>
元素?
我需要这样,所以我可以设置一个class =“current”来改变突出显示以反映新选择的项目。
编辑:对所有回复的人,谢谢。像往常一样,这是一种教育。我最终使用了@ PKG的解决方案......它非常适合我的实现。答案 0 :(得分:3)
以下功能仅返回顶级<li>
$(this).parents("li").last();
答案 1 :(得分:0)
如果您正在处理<a>
的点击事件,则可以使用:
$(this).closest('li')
答案 2 :(得分:0)
$(this).closest("li");
如果您希望整个UL中的第一个LI位于:
$(this).closest("ul").find("li:first");
答案 3 :(得分:0)
你可以这样使用parents()
:
var url = window.location.href; // (or however you prefer)
$('a[href*="'+url+'"]').parents('li').addClass('current');
现在,我将如何做,就是在最顶层的li或类似的东西中添加一个类来缩小它。否则,它会将类添加到路径中的所有列表项,这通常也是您想要的。
答案 4 :(得分:0)
虽然你的问题很模糊,但我认为你正在尝试这样的事情:
// This will loop through all of the ul's on the page and handle the first li
$('ul').each(function(index,element){
var first_li = $(element).find('li:first');
// Do something with the li
});