Jquery 类未与if语句一起添加

Jquery 类未与if语句一起添加,jquery,Jquery,我有三个导航,我只希望显示有活动类的导航,但我无法实现这一点。正如您所看到的,列表项是具有活动类的元素,因此我的目标是列表项,而不是ul。谢谢 $(文档).ready(函数(){ if($('.book ul li').hasClass('active')){ $(this.addClass('showActiveBook'); } }); .book{ 显示:无; } .showActiveBook{ 显示:块; } 第2册第1章 第2册第2章 此的用法不正确。

我有三个导航,我只希望显示有活动类的导航,但我无法实现这一点。正如您所看到的,列表项是具有活动类的元素,因此我的目标是列表项,而不是ul。谢谢

$(文档).ready(函数(){
if($('.book ul li').hasClass('active')){
$(this.addClass('showActiveBook');
}
});
.book{
显示:无;
}
.showActiveBook{
显示:块;
}

    • 第2册第1章
    • 第2册第2章

的用法不正确。如果没有正确的链接,
将引用文档或窗口。但是,在您的情况下,不需要if语句。只需找到具有active类的li,找到它的父book元素,并将该类添加到其中

$(文档).ready(函数(){
$('.book ul li.active').closest('.book').addClass('showActiveBook');
});
.book{
显示:无;
}
.showActiveBook{
显示:块;
}

    • 第2册第1章
    • 第2册第2章

您可以只获取
'li.active'
而不是获取所有的li.active并进行测试,您可以使用
父级(2)
获取第二个父级(父级
导航
元素):

$(文档).ready(函数(){
$('.book ul li.active').parents(2.addClass('showActiveBook');
});
.book{
显示:无;
}
.showActiveBook{
显示:块;
}

    • 第2册第1章
    • 第2册第2章