2011-04-18 50 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吧”。缺点:它总会添加额外的空白区域,但不应该破坏任何东西。