Правильный и стандартный способ сделать это использует классный список
. В настоящее время широко поддерживается в последней версии большинства современных браузеров :
ELEMENT.classList.remove("CLASS_NAME");
RESING.ONCLICK = () => {const el = document.queryselector ('# El'); если (el.classlist.contains («красный»)) {EL.CLASSLIST.REMOVE («RED»); }}
.ed {background: красный}
тест div> <кнопка ID = 'Удалить'> Удалить класс кнопку>
Документация: https://developer.mozilla.org/en/dome/element.classlist
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,' ');
}
}
Попробуйте:
function removeClassName(elem, name){
var remClass = elem.className;
var re = new RegExp('(^| )' + name + '( |$)');
remClass = remClass.replace(re, '$1');
remClass = remClass.replace(/ $/, '');
elem.className = remClass;
}
document.getElementById("MyID").className =
document.getElementById("MyID").className.replace(/\bMyClass\b/,'');
Где MyID
- это идентификатор элемента, а MyClass - это имя класса, которое вы хотите удалить.
Обновление: Для поддержки названий классов, содержащих характерный характер, такой как «мой класс», используют
document.getElementById("MyID").className =
document.getElementById("MyID").className
.replace(new RegExp('(?:^|\\s)'+ 'My-Class' + '(?:\\s|$)'), ' ');