删除除了一个的所有课程
好吧,我知道用一些jQuery动作,我们可以添加很多类到一个特定的div:
<div class="cleanstate"></div>
让我们说,一些点击和其他的东西,div得到了很多类
<div class="cleanstate bgred paddingleft allcaptions ..."></div>
那么,我怎样才能删除除了一个之外的所有类呢? 我提出的唯一的想法是这样的:
$('#container div.cleanstate').removeClass().addClass('cleanstate');
虽然removeClass()
杀死了所有的类,但是div被搞砸了,但是在addClass('cleanstate')
之后加上了它就恢复了正常。 另一个解决scheme是把一个ID属性与基本的CSS属性,所以他们不会被删除,什么也提高了性能,但我只是想知道另一种解决scheme来摆脱除“.cleanstate”
我这样问,是因为在真正的剧本中,div遭受了各种各样的变化。
而不是分两步完成,你可以用attr
重新设置整个值,方法是用你想要的类覆盖所有的类值:
jQuery('#container div.cleanstate').attr('class', 'cleanstate');
示例: http : //jsfiddle.net/jtmKK/1/
使用attr直接将class属性设置为所需的特定值:
$('#container div.cleanstate').attr('class','cleanstate');
用普通的旧JavaScript,而不是JQuery:
document.getElementById("container").className = "cleanstate";
有时你需要保留一些CSSanimation的类,因为一旦你删除所有的类,animation可能无法工作。 相反,你可以保留一些类,并删除像这样的其余部分:
$('#container div.cleanstate').removeClass('removethis removethat').addClass('cleanstate');
关于抢答和为了完整起见,你也可以使用querySelector和vanilla
document.querySelector('#container div.cleanstate').className = "cleanstate";