2010-11-10 83 views
13

我想使用jquery從元素中刪除一個類(不知道提前知道它是否存在)並添加一個新元素來替換它。jquery刪除一個類(如果它存在並添加一個新類)

這會是最好的方式(我skepticle,因爲它不檢查,看看如果類中取出前存在):

$(elem).removeClass(oldClass).addClass(newClass); 

感謝

+1

在刪除它之前是否需要知道它是否有舊類?無論是否存在,.removeClass()都會成功。換句話說,如果它存在,它會被刪除,如果它不存在,則會被跳過。 – 2010-11-10 14:02:42

回答

24
$(elem).removeClass(oldClass).addClass(newClass); 

這是完美的。不需要先檢查;如果它在那裏,它會去,如果沒有,它已經消失了。如果它已經存在或不存在,您也可以toggleClass()並添加/刪除一個類。

+1

+1,比我的(現在刪除的)答案快24秒。 – 2010-11-10 14:02:55

+0

請記住,您也可以使用removeClass()一次刪除多個類,方法是將它們以空格分隔,例如$(this).removeClass('one two'); – 2010-11-10 14:03:11

+0

只是好奇,爲什麼不在JQuery文檔中陳述這個(或者是否?)。我只是想知道我應該知道如果類不存在,它不會拋出錯誤。謝謝。 – bba 2010-11-10 17:55:24

9

您可以使用hasClass

if ($(elem).hasClass(oldClass)){ 
    // it has class 
} else { 
    // it doesn't have specified class 
} 

描述:確定匹配元素是否有任何的 被assig請給出 給定的課程。