我想添加一个类来列出具有特殊类但不在其嵌套 ul 上的元素。
<div id="nav">
<ul>
<li class="closed top">Topic 1
<ul>
<li class="closed top">Subtopic 1
<ul>
<li><a href="#" id="k0" class="link active">Link 1</a></li>
<li><a href="#" id="k1" class="link inactive">Link 2</a></li>
</ul>
</li>
</ul>
</li>
<li class="closed top">Topic 2
<ul>
<li class="closed top">Subtopic 1
<ul>
<li><a href="#" id="l0" class="link inactive">Link 1</a></li>
<li><a href="#" id="l1" class="link inactive">Link 2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
如果例如链接 1 处于活动状态,我希望所有具有“顶级”类的 li 更改它们的颜色。
if ($('#nav a').hasClass('active')) {
$('li.top').addClass('textcolor');
}
现在样式被附加到每个元素,我只想要我的 .top li 上的样式。
此外,当另一个主题菜单中的链接处于活动状态时,我想删除该类。(只能有一个活动链接,前一个变为非活动链接,我已经这样做了。)。
FIDDLE,不过还有一些额外的东西。jQuery 函数位于底部。.textcolor 样式带有红色背景,可以直接查看更改。
编辑:建议的答案都不起作用。我不知道我是否遗漏了什么,但如果我在我的小提琴中尝试下面的代码,它就是行不通。对此有什么想法吗?