Jquery 如何在li中添加类?
我有一个无序列表,我正在使用以下代码将类添加到我访问的当前链接中Jquery 如何在li中添加类?,jquery,Jquery,我有一个无序列表,我正在使用以下代码将类添加到我访问的当前链接中 $("li a").filter(function(){ return this.href == location.href.replace(/#.*/, ""); }).addClass("selected"); 结果是: 但我需要的解决方案是: 请帮忙。多谢各位 更新:目前大多数答案都很好。然而,我遇到了另一个问题 父li具有子菜单。单击子菜单链接后,父li的选定类将消失。有没有办法使选定的类也保留在父类li上?或者
$("li a").filter(function(){
return this.href == location.href.replace(/#.*/, ""); }).addClass("selected");
结果是:
但我需要的解决方案是:
请帮忙。多谢各位
更新:目前大多数答案都很好。然而,我遇到了另一个问题
父li具有子菜单。单击子菜单链接后,父li的选定类将消失。有没有办法使选定的类也保留在父类li上?或者,如果可以只在父li上添加类,而不在任何单击的子菜单链接上添加类?再次感谢您的帮助 我想这应该可以
$("li a").filter(function(){
return this.href == location.href.replace(/#.*/, ""); }).parent('li').addClass("selected");
编辑
您正在筛选锚元素,而不是li,因此addClass会将该类添加到a元素中。您可以使用祖先lookup.parent.closest查找所需的li元素,然后使用addClass
清洁和优化的方式:
var targetUrl = window.location.href.replace(/#.*/, "");
var activeNav = $('li a[href="'+ targetUrl +'"]');
if ( activeNav.length ) {
activeNav.parent('li').addClass('selected');
}
除非您不知道HTML,否则不能说它是structure@TusharRajOp已经为您的回复提供了html结构库,但是没有达到我想要的结果。嗨,先生,我发布了一个更新问题。希望你能再次帮助我:哦,对不起,你需要把它改成父母谢谢先生的帮助。实际上,第一个解决方案是有效的。我只是忽略了css中的一些细节。现在终于开始工作了。再次感谢:
$("li a").filter(function () {
return this.href == location.href.replace(/#.*/, "");
}).parent().addClass("selected");
var targetUrl = window.location.href.replace(/#.*/, "");
var activeNav = $('li a[href="'+ targetUrl +'"]');
if ( activeNav.length ) {
activeNav.parent('li').addClass('selected');
}
$("li a").filter(function(){
return this.href == location.href.replace(/#.*/, ""); }).closest('li').addClass("selected");