我想要添加一個類來列出具有特殊類的元素,但不在它們的嵌套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