我想要添加一个类来列出具有特殊类的元素,但不在它们的嵌套ul上。将css样式添加到某个没有嵌套的li 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是活动的,我希望所有的'顶'类的李改变他们的颜色。
if ($('#nav a').hasClass('active')) {
$('li.top').addClass('textcolor');
}
现在样式被追加到每个元素,我只想要我的.top li的样式。
此外,我想要在另一主题菜单中的链接处于活动状态时删除该类。 (只能有一个活动链接,前一个链接变为非活动链接,我已经这样做了。)。
FIDDLE,虽然有一些额外的东西。 jQuery函数位于底部。 .textcolor样式有红色背景可直接查看更改。
编辑:没有任何建议的答案正在工作。我不知道我是否错过了一些东西,但是如果我在下面的代码中尝试下面的代码,它只是不起作用。对此有何想法?
你的第二级也有班级“顶”。你可以使用'ul> li'来设置'ul'的直接子类。如果这样做不起作用,你可能需要取消后代的风格。 – mpen 2013-04-29 22:11:13