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

jQuery和原始JavaScript都可以工作。


当前回答

我也有类似的问题。在我的例子中,在禁用的元素上应用了aspNetDisabled类,所有禁用的控件都有错误的颜色。所以,我使用jQuery删除了我想要的每个元素/控件上的这个类,现在一切都正常了,看起来很好。

这是我删除aspNetDisabled类的代码:

$(document).ready(function () {

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

});

其他回答

尝试使用removeClass。

例如:

var nameClass=document.getElementsByClassName(“classe1”);console.log(“after”,nameClass[0]);$(“.classe1”).removeClass();var nameClass=document.getElementsByClassName(“classe1”);console.log(“之前”,nameClass[0]);<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><div class=“clase1”>我是一名div,class=“classe1”</div>

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

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


您也可以使用(但不一定建议使用。正确的方法是上面的方法):

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

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

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

不管你信不信,我喜欢使用原生JavaScript来实现这一点!

解决方案1:className

删除所有项目的所有类别

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

仅删除第一项的所有类

const item1 = document.querySelector('item');
item1.className = '';

解决方案2:classList

// remove all class of all items
 const items = [...document.querySelectorAll('.item')];
 for (const item of items) {
   item.classList.value = '';
 }
 // remove all class of the first item
 const items = [...document.querySelectorAll('.item')];
 for (const [i, item] of items.entries()) {
   if(i === 0) {
     item.classList.value = '';
   }
 }
 // or
 const item = document.querySelector('.item');
 item.classList.value = '';

jQuery方式(不推荐)

$(“#item”).removeClass();$(“#item”).removeClass(“class1…classn”);

refs

https://developer.mozilla.org/en-US/docs/Web/API/Element/className

https://developer.mozilla.org/en-US/docs/Web/API/Element/classList

删除特定类:

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

假设元素具有class=“class another class”。

由于并非所有版本的jQuery都是相同的,因此您可能会遇到与我相同的问题,这意味着调用$(“#item”).removeClass();实际上并没有删除该类(可能是一个bug)。

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

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