Удалить класс CSS из элемента с помощью JavaScript (без jQuery) [дубликат]

557
задан ЯegDwight 4 October 2012 в 08:59
поделиться

4 ответа

Правильный и стандартный способ сделать это использует классный список . В настоящее время широко поддерживается в последней версии большинства современных браузеров :

ELEMENT.classList.remove("CLASS_NAME");

 RESING.ONCLICK = () => {const el = document.queryselector ('# El');  если (el.classlist.contains («красный»)) {EL.CLASSLIST.REMOVE («RED»);  }} 
 .ed {background: красный} 
 
тест <кнопка ID = 'Удалить'> Удалить класс

Документация: https://developer.mozilla.org/en/dome/element.classlist

898
ответ дан 22 November 2019 в 22:09
поделиться
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,' ');
        }
    }
41
ответ дан 22 November 2019 в 22:09
поделиться

Попробуйте:

function removeClassName(elem, name){
    var remClass = elem.className;
    var re = new RegExp('(^| )' + name + '( |$)');
    remClass = remClass.replace(re, '$1');
    remClass = remClass.replace(/ $/, '');
    elem.className = remClass;
}
9
ответ дан 22 November 2019 в 22:09
поделиться
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|$)'), ' ');
515
ответ дан 22 November 2019 в 22:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: