jquery removeClass()不删除所有类

mis*_*ses 8 javascript jquery

我有这样一个元素:

<div class="one two three" id="waterhorse">horse</div>
Run Code Online (Sandbox Code Playgroud)

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

$("#waterhorse").removeClass();
Run Code Online (Sandbox Code Playgroud)

我明白了:

[<div id=?"waterhorse" class=?"one two three">?horse?</div>?]
Run Code Online (Sandbox Code Playgroud)

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

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

$("#waterhorse").removeClass("two");
Run Code Online (Sandbox Code Playgroud)

此外,这将删除所有类:

$("#waterhorse").removeAttr("class");
Run Code Online (Sandbox Code Playgroud)

知道为什么后者可以删除所有类,但前者不是吗?

Ben*_*lls 10

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

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

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

上面的答案是一个使用.removeAttr('class')而不是使用的解决方法.removeClass()


小智 -1

如果我们阅读文档,它会说明这一点:

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

换句话说,.removeClass()应该在没有参数的情况下工作。我已经在 FF 中尝试过,并且按预期工作。

我尝试重现您遇到的问题,但无法做到:jsFiddle

<div class="one two three" id="waterhorse">horse</div>

$("#waterhorse").removeClass();
$("#waterhorse").addClass("four");
console.log($("#waterhorse"));
Run Code Online (Sandbox Code Playgroud)

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