有人可以让我知道如何删除一个类的元素只使用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

其他回答

var element = document.getElementById('example_id');
var remove_class = 'example_class';

element.className = element.className.replace(' ' + remove_class, '').replace(remove_class, '');

正确和标准的方法是使用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

我使用这个JS片段代码:

首先,我到达所有的类,然后根据我的目标类的索引,我设置className = ""。

Target = document.getElementsByClassName("yourClass")[1];
Target.className="";

试试这个:

function hasClass(ele, cls) {
  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
    
function removeClass(ele, cls) {
  if (hasClass(ele,cls)) {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
  }
}
document.getElementById("whatever").className += "classToKeep";

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