Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何在li中添加类?_Jquery - Fatal编程技术网

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");