2011-04-18 53 views
3

我有一個有3個或4個類的div。我需要找到名稱=「aClass」的類,並將其替換爲「anotherClass」。我怎樣才能做到這一點與jQuery?在不同情況下,「aClass」可能出現在類名列表中的任何位置,例如在一個案例中它是第一類,在另一個案例中它可能是最後一個甚至是中間。用多個類替換div類名稱

回答

8

使用.removeClass().addClass()

$('.aClass').removeClass('aClass').addClass('anotherClass'); 

您也可以在class屬性的字符串替換,但是當你看到你最好只使用第一個例子:

$('.aClass').attr('class', function() { 
    return $(this).attr('class').replace('aClass', 'anotherClass'); 
}); 
+0

輝煌!謝謝! – 2011-04-18 18:12:51

1
if ($('#selector').hasClass('aClass')) { 
    $(this).removeClass('aClass'); 
    $(this).addClass('anotherClass'); 
} 
0

不難:

var replace_this = 'aClass'; 
var with_this = 'anotherClass'; 
$('.' + replace_this).removeClass(replace_this).addClass(with_this); 
1

由於問題(即標題)沒有提到jQuery(直到完整解釋),我將用我純粹的JS解決方案做出貢獻。

var el = document.getElementById("myDiv"); el.className = el.className.replace(/\baClass\b/," anotherClass ");}

這應該抓住 「富ACLASS」, 「ACLASS foo」 和 「FOO ACLASS吧」。缺點:它總會添加額外的空白區域,但不應該破壞任何東西。