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();
希望对你有帮助。:)