我有以下語法,我想從鏈接標記中刪除所有CSS類。我如何使用jQuery來做到這一點?如何更改jquery的所有孩子的類?
<div id="nav">
<ul>
<li><a href="" class="foo">aa</a></li>
<li><a href="" class="bar">aa</a></li>
<li><a href="" class="yay">aa</a></li>
</ul>
</div>
我有以下語法,我想從鏈接標記中刪除所有CSS類。我如何使用jQuery來做到這一點?如何更改jquery的所有孩子的類?
<div id="nav">
<ul>
<li><a href="" class="foo">aa</a></li>
<li><a href="" class="bar">aa</a></li>
<li><a href="" class="yay">aa</a></li>
</ul>
</div>
您可以使用removeClass()
方法;如果調用它沒有參數它刪除所有類:
$('#nav ul a').removeClass();
描述:在所述一組匹配的元素從每個元素中刪除單個類,多個類,或所有類。
很明顯,你可以鏈.addClass('someClass')
在同一個呼叫;你問更改畢竟你的問題的主題。 ;)
如果你想刪除所有類,那麼它就是:
$('#nav a').each(function(){
$(this).removeAttr('class');
});
$('#nav ul li a').each(function(){
this.className = '';
});
查找所有錨,基於div#nav
選擇,並刪除所有的類名稱。
無需循環! – epascarello 2012-03-13 16:59:09
有效,但不需要遍歷代碼中的元素 - 您可以使用'.removeClass()' – ThiefMaster 2012-03-13 16:59:21
+1顯式循環有什麼問題?如果在循環中使用'.removeClass()',那將是一個不同的故事,但這不是這種情況。 – 2012-03-13 17:10:21
您可以使用$("a").removeClass();
無需環路 – epascarello 2012-03-13 16:59:00
使用屬性修改現有元素時,幾乎總是一個壞主意。使用'this.className ='';'或'$(this).prop('className','')'(但在BradChristie的回答中看到我的評論) – ThiefMaster 2012-03-13 17:00:02
@epascarello打開校正,但我認爲它在內部使用。 – thelastshadow 2013-03-27 14:50:28