jquery removeClass()没有删除所有类

我有这样一个元素:

horse

当我在浏览器控制台中运行此代码时:

 $("#waterhorse").removeClass(); 

我明白了:

 [
​horse​
​]

换句话说,它不起作用; 它不会删除元素上的任何类。 遗憾的是我无法在jsfiddle中重现它。

但是,我可以删除一个特定的类:

 $("#waterhorse").removeClass("two"); 

此外,这将删除所有类:

 $("#waterhorse").removeAttr("class"); 

任何想法为什么后者工作删除所有类,但前者不?

看起来这是一个已知的问题,jQuery和jQueryUI不能很好地一起玩:

jQuery .removeClass()没有做任何事情的奇怪问题

http://bugs.jqueryui.com/ticket/9015

上面的答案是使用.removeAttr('class')而不是.removeClass()的变通方法

如果我们阅读文档,则说明:

如果包含类名作为参数,则只从该匹配元素集中删除该类。 如果参数中未指定类名,则将删除所有类。

换句话说, .removeClass()应该没有参数。 我在FF中尝试了这个,这可以按预期工作。

我试图重现你遇到的问题,但它无法做到: jsFiddle

 
horse
$("#waterhorse").removeClass(); $("#waterhorse").addClass("four"); console.log($("#waterhorse"));

您使用的浏览器版本是什么?

您可以在$(document).ready()中执行此操作来实现此目的。

 $("#waterhorse").attr("class", ""); or $("#waterhorse").removeClass(); 

希望对你有帮助。:)