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

时间:2009-09-15 03:34:22

标签: javascript jquery dom

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

jQuery和原始JavaScript都可以使用。

13 个答案:

答案 0 :(得分:1419)

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

在没有参数的情况下调用removeClass将删除所有项目的类。


你也可以使用(但不一定推荐,正确的方式是上面那个):

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

如果你没有jQuery,那么这将是你唯一的选择:

document.getElementById('item').className = '';

答案 1 :(得分:111)

如果没有指定任何特定内容,请挂起,不删除类()默认删除所有类?所以

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

会独自完成......

答案 2 :(得分:13)

当然。

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

答案 3 :(得分:13)

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

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

修改:其他人已经说过只是打电话给removeClass了 - 我用谷歌JQuery游乐场测试了这个:http://savedbythegoog.appspot.com/?id=ag5zYXZlZGJ5dGhlZ29vZ3ISCxIJU2F2ZWRDb2RlGIS61gEM ......它有效。所以你也可以这样做:

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

答案 4 :(得分:9)

最短的方法

$('#item').removeAttr('class').attr('class', '');

答案 5 :(得分:9)

嘿,来找寻找类似的答案。 然后它击中了我。

删除特定类

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

假设元素有class =" class another-class"

答案 6 :(得分:4)

$('#elm').removeAttr('class');

不再是“榆树”中的类别。

答案 7 :(得分:4)

你可以尝试

$(document).ready(function() {
   $('body').find('#item').removeClass();
});

如果你必须访问没有类名的那个元素,例如你必须添加一个新的类名,你可以这样做:

$(document).ready(function() {
   $('body').find('#item').removeClass().addClass('class-name');
});

我在projet中使用该函数来删除和添加html构建器中的类。祝你好运。

答案 8 :(得分:2)

我喜欢使用原生js这样做,不管它与否!

1

// remove all items all class  
const items = document.querySelectorAll('item');
for (let i = 0; i < items.length; i++) {
    items[i].className = '';
}

2

// only remove all class of first item
const item1 = document.querySelector('item');
item1.className = '';

jQuery方式

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

  2. $("#item").removeClass("class1 ... classn");

答案 9 :(得分:1)

由于并非所有版本的jQuery都是相同的,所以你可能遇到同样的问题,这意味着调用$(&#34;#item&#34;)。removeClass();实际上并没有删除该类。 (可能是个bug)

更可靠的方法是简单地使用原始JavaScript并完全删除class属性。

document.getElementById("item").removeAttribute("class");

答案 10 :(得分:1)

尝试使用removeClass

例如

&#13;
&#13;
var nameClass=document.getElementsByClassName("clase1");
console.log("after", nameClass[0]);
$(".clase1").removeClass();
var nameClass=document.getElementsByClassName("clase1");
console.log("before", nameClass[0]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="clase1">I am Div with class="clase1"</div>
&#13;
&#13;
&#13;

答案 11 :(得分:0)

让我们使用此示例。也许您希望网站的用户知道某个字段有效,或者需要通过更改该字段的背景颜色来引起注意。如果用户点击了reset,那么您的代码应仅重置具有数据的字段,而不必麻烦遍历页面上的所有其他字段。

  

此jQuery过滤器仅会删除类“ highlightCriteria”   输入或选择具有此类的字段。

$form.find('input,select').filter(function () {
    if((!!this.value) && (!!this.name)) {
        $("#"+this.id).removeClass("highlightCriteria");
    }
});

答案 12 :(得分:-2)

我有类似的问题。在我的情况下,应用了禁用的元素,aspNetDisabled类和所有禁用的控件都有错误的颜色。所以,我使用jquery来删除每个元素/控件上的这个类,并且一切正常,现在看起来很棒。

这是我删除aspNetDisabled类的代码:

$(document).ready(function () {

    $("span").removeClass("aspNetDisabled");
    $("select").removeClass("aspNetDisabled");
    $("input").removeClass("aspNetDisabled");

});