删除除一个以外的所有类

Dar*_*ter 88 javascript jquery addclass class removeclass

好吧,我知道通过一些jQuery动作,我们可以为特定的div添加很多类:

<div class="cleanstate"></div>
Run Code Online (Sandbox Code Playgroud)

让我们说,通过点击和其他一些事情,div可以获得很多课程

<div class="cleanstate bgred paddingleft allcaptions ..."></div>
Run Code Online (Sandbox Code Playgroud)

那么,我如何删除除一个类之外的所有类?我提出的唯一想法就是:

$('#container div.cleanstate').removeClass().addClass('cleanstate');
Run Code Online (Sandbox Code Playgroud)

removeClass()杀死所有类的同时,div被搞砸了,但在之后添加addClass('cleanstate')它会恢复正常.另一个解决方案是使用基本CSS属性放置一个ID属性,这样它们就不会被删除,这也会提高性能,但我只是想知道另一个解决方案除去".cleanstate"之外的所有解决方案.

我问这个是因为,在真实的脚本中,div会遭受各种类的更改.

Yah*_*hel 200

您可以attr通过使用所需的类覆盖所有类值来立即重置整个值,而不是分两步完成:

jQuery('#container div.cleanstate').attr('class', 'cleanstate');
Run Code Online (Sandbox Code Playgroud)

示例:http://jsfiddle.net/jtmKK/1/


tva*_*son 33

使用attr直接将class属性设置为您想要的特定值:

$('#container div.cleanstate').attr('class','cleanstate');
Run Code Online (Sandbox Code Playgroud)


Rob*_*com 13

使用普通的旧JavaScript,而不是JQuery:

document.getElementById("container").className = "cleanstate";
Run Code Online (Sandbox Code Playgroud)