在对jQuery对象使用removeClass api之前是否需要检查类是否存在?
例如。

if($(this).hasClass("test"))
   $(this).removeClass("test");

要么
$(this).removeClass("test");

如果没有必要,为什么呢?

最佳答案

仅使用此:

$(this).removeClass("test");

无需检查类是否存在。

jQuery sources中,我们可以看到removeClass方法使用 replace 方法删除了子字符串:
className = (" " + elem.className + " ").replace(rclass, " ");
for (c = 0, cl = classNames.length; c < cl; c++) {
    className = className.replace(" " + classNames[c] + " ", " ");
}​

如果匹配的子字符串不存在,那么replace不会删除任何内容。

关于jquery - hasClass应该在removeClass之前-jQuery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10895631/

10-10 23:49