用多个类替换div上的类名

时间:2011-04-18 17:46:33

标签: jquery css

我有一个div有3或4个类。我需要找到name =“aClass”的类,并将其替换为“anotherClass”。我怎么能用jquery做到这一点? “aClass”可能出现在不同情况下的类名列表中的任何位置,例如在一个案例中它是第一类,在另一个案例中它可能是最后一个甚至是中间。

4 个答案:

答案 0 :(得分:9)

使用.removeClass().addClass()

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

你也可以在class属性上进行字符串替换,但正如你所看到的,你最好只使用第一个例子:

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

由于问题(即标题)没有提及jQuery(直到完整解释),我将使用我的纯JS解决方案。

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

这应该抓住“foo aClass”,“aClass foo”和“foo aClass bar”。缺点:它总是会增加额外的空白区域,但它不会破坏任何东西。

答案 3 :(得分:0)

不难:

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