addClass和attr有什么区别?

时间:2014-09-15 09:03:47

标签: jquery

要添加课程,我们可以像下面这样使用

$('#x').addClass('test');

我们也可以通过以下方式做到

$('#x').attr('class','test');

所以我想知道这两种方式是否相同而且存在一些差异

2 个答案:

答案 0 :(得分:2)

$('#x').attr('class','test');将删除所有现有的类,并将test设置为唯一的类...

如果$('#x').addClass('test');已经不存在,那么test会将类<div id="x" class="some class"></div> 添加到现有的类集中

.addClass('test')

在上面的标记class="some class test"中会产生.attr('class','test'),而class="test"会创建{{1}}

答案 1 :(得分:1)

示例:

<div id="x" class="a">

$('#x').addClass('test');

<强>结果:

<div id="x" class="a test">

$('#x').attr('class','test');

<强>结果:

<div id="x" class="test">

但如果你谈论的是perf。看到这个..

http://jsperf.com/jquery-addclass-vs-attr-class-vs-prop-class/3