如何使用 jQuery/JavaScript 删除所有 CSS 类?

IT技术 javascript jquery dom
2021-03-04 22:02:37

不是单独调用$("#item").removeClass()元素可能具有的每个类,而是可以调用一个函数来从给定元素中删除所有 CSS 类?

jQuery 和原始 JavaScript 都可以使用。

6个回答
$("#item").removeClass();

removeClass不带参数调用将删除项目的所有类。


也可以使用(但不一定推荐,正确的方法是上面的一种):

$("#item").removeAttr('class');
$("#item").attr('class', '');
$('#item')[0].className = '';

如果您没有 jQuery,那么这几乎是您唯一的选择:

document.getElementById('item').className = '';
是的,我也怀疑这是一个错误,而不是设计。同时,以下纯 JavaScript 工作正常。document.getElementById("item").removeAttribute("class");
2021-04-15 22:02:37
jQuery UI 1.9 存在问题。如果 removeClass() 不起作用,请使用 removeAttr('class')
2021-04-18 22:02:37
在 1.11.1 版本中,不带参数调用 removeClass() 似乎不再起作用
2021-04-27 22:02:37
@Vincent 似乎是 jQuery 中引入的一个错误,因为他们的文档明确指出:If a class name is included as a parameter, then only that class will be removed from the set of matched elements. If no class names are specified in the parameter, all classes will be removed. api.jquery.com/removeclass
2021-05-02 22:02:37
不应该attr()prop()现在版本吗?
2021-05-10 22:02:37

等等,如果没有指定任何特定内容,removeClass() 是否默认删除所有类?所以

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

会自己做...

现在,它被记录正确:如果参数没有指定类名,所有的类都将被删除。
2021-04-21 22:02:37
是的:“从匹配的元素集中删除所有或指定的类。”
2021-05-01 22:02:37

只需将className真实 DOM 元素属性设置''(nothing)。

$('#item')[0].className = ''; // the real DOM element is at [0]

其他人说只是调用removeClass有效 - 我用 Google jQuery Playground 测试了这个:http : //savedbythegoog.appspot.com/ ? id= ag5zYXZlZGJ5dGhlZ29vZ3ISCxIJU2F2ZWRDb2RlGIS61gEM ...并且它有效。所以你也可以这样做:

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

当然。

$('#item')[0].className = '';
// or
document.getElementById('item').className = '';

删除特定类:

$('.class').removeClass('class');

假设元素是否具有 class="class another-class"。

最后一句话似乎难以理解。你能修好它吗?
2021-04-15 22:02:37