如何使用jQuery更改元素的类名

64
<div class="bestAnswerControl">
    <div id="ct100_contentplaceholder_lvanswer_control_divbestanswer"  
         class="IsBestAnswer"></div>
</div>

我想要添加:

.bestanswer
{
    // some attribute
}
我想用 jQuery 把 div 的 class="IsBestAnswer" 替换为 class="bestanswer"。我应该怎么做?
我正在使用以下方式:
$('.IsBestAnswer').addclass('bestanswer'); 

但是它不起作用。


定义“不工作”的含义。addClass 应该可以正常工作。 - Pekka
3个回答

148

15
如果你不带参数调用它,它将从元素中删除所有类:例如,$('#IsBestAnswer').removeClass().addClass('bestanswer')。 - John Meyer
2012年末,浏览器引入了 Element.classList,它返回一个 DOMTokenList,具有用于操作HTML元素的类属性的方法。 - kankan256

50

除了使用removeClass和addClass之外,你还可以这样做:

$('.IsBestAnswer').toggleClass('IsBestAnswer bestanswer');

13
$('.IsBestAnswer').removeClass('IsBestAnswer').addClass('bestanswer');

你的代码有两个问题:

  1. 选择器 .IsBestAnswe 与你想象的不符。
  2. 应该是 addClass(),而不是 addclass()

此外,我不确定你是想要替换这个类还是添加它。上面的代码会替换它,如果想要添加,请删除 .removeClass('IsBestAnswer') 部分:

$('.IsBestAnswer').addClass('bestanswer');

你应该决定在CSS类中使用camelCase或全小写(例如bestAnswer vs. bestanswer)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接