Javascript jquery删除类(如果存在并添加新类)

Javascript jquery删除类(如果存在并添加新类),javascript,jquery,Javascript,Jquery,我尝试使用jquery从元素中删除一个类(不知道它是否存在),并添加一个新元素来替换它 这是最好的方法吗(我对此表示怀疑,因为它在删除类之前没有检查类是否存在): 谢谢您可以使用: 描述:确定 匹配的元素被指定为 给定的类 做你期望它做的事 $(elem).removeClass(oldClass).addClass(newClass); 这太完美了。不需要先检查;如果它在那里,它就消失了,如果没有,它就已经消失了 仅供参考,您还可以切换class()并添加/删除一个类,具体取决于该类是否已经

我尝试使用jquery从元素中删除一个类(不知道它是否存在),并添加一个新元素来替换它

这是最好的方法吗(我对此表示怀疑,因为它在删除类之前没有检查类是否存在):

谢谢

您可以使用:

描述:确定 匹配的元素被指定为 给定的类

做你期望它做的事

$(elem).removeClass(oldClass).addClass(newClass);
这太完美了。不需要先检查;如果它在那里,它就消失了,如果没有,它就已经消失了


仅供参考,您还可以切换class()并添加/删除一个类,具体取决于该类是否已经存在。

在删除它之前,您需要知道它是否具有旧类吗。无论removeClass()是否存在,它都将成功。换句话说,如果它存在,则会被删除,如果它不存在,则会被跳过。请记住,您也可以使用removeClass()一次删除多个类,方法是将它们以空格分隔,如$(this)。removeClass('one-two');奇怪的是,为什么它不在JQuery文档中说明这一点(或者说是吗?)。我只是想知道如果类不存在,我怎么知道它不会抛出错误。谢谢。我自己仔细检查了一下,看看他们是否发布了一个最佳实践——运气不好。事实上,有人在文档页面上问了同样的问题。根据我的经验,我可以告诉你,这不会导致问题,在某些方面,这个特定的函数执行你要求它执行的操作——它返回包装集,减去你要求删除的类。如果一开始没有这些类,你仍然可以得到你想要的。我认为Sarfraz的答案更好,因为它不会不必要地删除和添加类。通常这不是问题,但如果使用CSS 3转换,您可能会看到一些意外的结果。请注意,此方法可能会根据类包含的CSS强制重新绘制。
if ($(elem).hasClass(oldClass)){
   // it has class
} else {
   // it doesn't have specified class
}
toggleClass 
$(elem).removeClass(oldClass).addClass(newClass);