2012-03-13 47 views
2

我有以下語法,我想從鏈接標記中刪除所有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> 

回答

13

您可以使用removeClass()方法;如果調用它沒有參數它刪除所有類:

$('#nav ul a').removeClass(); 

描述:在所述一組匹配的元素從每個元素中刪除單個類,多個類,或所有類。

很明顯,你可以鏈.addClass('someClass')在同一個呼叫;你問更改畢竟你的問題的主題。 ;)

1

如果你想刪除所有類,那麼它就是:

$('#nav a').each(function(){ 
    $(this).removeAttr('class'); 
}); 
+1

無需環路 – epascarello 2012-03-13 16:59:00

+0

使用屬性修改現有元素時,幾乎總是一個壞主意。使用'this.className ='';'或'$(this).prop('className','')'(但在BradChristie的回答中看到我的評論) – ThiefMaster 2012-03-13 17:00:02

+0

@epascarello打開校正,但我認爲它在內部使用。 – thelastshadow 2013-03-27 14:50:28

1
$('#nav ul li a').each(function(){ 
    this.className = ''; 
}); 

查找所有錨,基於div#nav選擇,並刪除所有的類名稱。

+0

無需循環! – epascarello 2012-03-13 16:59:09

+0

有效,但不需要遍歷代碼中的元素 - 您可以使用'.removeClass()' – ThiefMaster 2012-03-13 16:59:21

+0

+1顯式循環有什麼問題?如果在循環中使用'.removeClass()',那將是一個不同的故事,但這不是這種情況。 – 2012-03-13 17:10:21

相關問題