Задать вопрос
sp1rob
@sp1rob

JavaScript classList найти и удалить класс содержащий слово?

Всем привет!
Есть элемент с классами, необходимо найти в нем класс содержащий ключевое слово и удалить его.
Пример:
<div class="class_1 class_2 class_key-word class_3">
  <!--content-->
</div>


let div = document.querySelector('.class_1');
// Дальше из него надо удалить класс содержащий _key-word
// Тут я ничего дельного придумать не могу
  • Вопрос задан
  • 1522 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Откуда и что надо удалить:

const { classList: cl } = div;
const toRemove = '_key-word';

Удаляем:

cl.remove(...[...cl].filter(n => n.indexOf(toRemove) !== -1));

// или

for (let i = cl.length; i--;) {
  if (cl[i].includes(toRemove)) {
    cl.remove(cl[i]);
  }
}

// или

cl.value = cl.value
  .replace(RegExp(`\\S*${toRemove}\\S*`, 'g'), '')
  .replace(/^ +| +(?= |$)/g, '');
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
mlnkv
@mlnkv
JavaScript Developer
node.className = node.className.replace(/\w+_key-word/g, "")
Ответ написан
Комментировать
alsolovyev
@alsolovyev
¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
Пусть будет так:
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,' ');  
  }
}


removeClass(div, 'class_key-word')
Ответ написан
Комментировать
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
node.classList.remove('class_1');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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