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


当前回答

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|$)'), ' ');

其他回答

try:

function removeClassName(elem, name){
    var remClass = elem.className;
    var re = new RegExp('(^| )' + name + '( |$)');
    remClass = remClass.replace(re, '$1');
    remClass = remClass.replace(/ $/, '');
    elem.className = remClass;
}

我使用这个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,' ');
  }
}
div.classList.add("foo");
div.classList.remove("foo");

更多信息请访问https://developer.mozilla.org/en-US/docs/Web/API/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|$)'), ' ');