Javascript 如果href与变量匹配,则将类添加到菜单li

Javascript 如果href与变量匹配,则将类添加到菜单li,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个多级菜单,我需要通过将类active添加到列表中来突出显示顶级菜单 我在javascript变量var activeHREF='/news/'中存储需要激活的link值 我需要一个jquery,它可以搜索列表li,并与列表中的href匹配。如果它与锚元素匹配,那么它应该向这个特定列表添加一个class='active' 我认为这是一种更有效的方法来处理我的场景,我最多可以有3或4个多级菜单,我需要突出显示顶级父菜单 指针是一种很好的启动方式。我将这样做: 我会这样做: 我想你正在寻

我有一个多级菜单,我需要通过将类
active
添加到列表中来突出显示顶级菜单

我在javascript变量
var activeHREF='/news/'中存储需要激活的link值

我需要一个jquery,它可以搜索列表
li
,并与列表中的href匹配。如果它与锚元素匹配,那么它应该向这个特定列表添加一个
class='active'

我认为这是一种更有效的方法来处理我的场景,我最多可以有3或4个多级菜单,我需要突出显示顶级父菜单


指针是一种很好的启动方式。

我将这样做:


我会这样做:


我想你正在寻找这样的东西:

$("li:has(a[href='" +activeHREF+ "']):first()").addClass("active")

我想你正在寻找这样的东西:

$("li:has(a[href='" +activeHREF+ "']):first()").addClass("active")
具有多级无序列表

$("a[href='" +activeHREF+ "']").parent().addClass("active")
使用过滤器也可以做同样的事情

$('a').filter(function() {
    return $(this).attr('href') == activeHREF;
}).parent().addClass('active');
具有多级无序列表

$("a[href='" +activeHREF+ "']").parent().addClass("active")
使用过滤器也可以做同样的事情

$('a').filter(function() {
    return $(this).attr('href') == activeHREF;
}).parent().addClass('active');

我认为这是实现你想要的最干净的方法。谢谢你指出这一点,布赖恩。相应地编辑了我的答案。我认为这将是实现你想要的最干净的方式。谢谢你指出这一点,布赖恩。相应地编辑了我的答案。感谢所有人的回复,+1表示对我的问题的所有但更合适的答案来自“brian”,也有两个版本。感谢所有人的回复,+1表示对我的问题的所有但更合适的答案来自“brian”,也有两个版本。我如何修改它,使其与锚文本一起工作,我尝试了这个
(“a”)。文本(+联系人+).parent().addClass(“活动”)
但它不起作用。您可以使用contains,-loose fitting-在选择“新闻”时选择也包含锚文本的链接,即“新闻”和“新闻”,或者使用限制性更强的过滤器,只返回带有指定锚文本的链接。这两种方法都很好,具体取决于您的场景。我如何修改它以使其与锚文本一起工作chor text,我尝试了这个
(“a”).text(+Contact+).parent().addClass(“active”)
但它不起作用。您可以使用contains,-loose fitting-在选择“News”时选择也包含锚文本的链接,即“News”和“The News”,或者使用限制性更强的过滤器,只返回带有指定锚文本的链接。这两种方法都很好,具体取决于您的场景。