有人可以让我知道如何删除一个类的元素只使用JavaScript ? 请不要用jQuery给我一个答案,因为我不会用它,我对它一无所知。


当前回答

正确和标准的方法是使用classList。现在大多数现代浏览器的最新版本都广泛支持它:

ELEMENT.classList.remove("CLASS_NAME");

删除.点击 =() => { const el = document.querySelector('#el'); el.classList.remove(“red”); } .红色 { 背景:红色 } <div id='el' class=“red”> 测试</div> <按钮 id='删除'>删除类</button>

文档:https://developer.mozilla.org/en/DOM/element.classList

其他回答

我认为这很简单。

document.getElementById("whatever").classList.remove("className");
div.classList.add("foo");
div.classList.remove("foo");

更多信息请访问https://developer.mozilla.org/en-US/docs/Web/API/element.classList

document.getElementById("whatever").className += "classToKeep";

使用加号('+')附加类,而不是覆盖任何现有的类

正确和标准的方法是使用classList。现在大多数现代浏览器的最新版本都广泛支持它:

ELEMENT.classList.remove("CLASS_NAME");

删除.点击 =() => { const el = document.querySelector('#el'); el.classList.remove(“red”); } .红色 { 背景:红色 } <div id='el' class=“red”> 测试</div> <按钮 id='删除'>删除类</button>

文档:https://developer.mozilla.org/en/DOM/element.classList

document.getElementById("MyID").className =
    document.getElementById("MyID").className.replace(/\bMyClass\b/,'');

其中MyID是元素的ID, MyClass是你想要删除的类的名称。


更新: 要支持包含破折号的类名,例如“My-Class”,请使用

document.getElementById("MyID").className =
  document.getElementById("MyID").className
    .replace(new RegExp('(?:^|\\s)'+ 'My-Class' + '(?:\\s|$)'), ' ');