@Sergeyjed

Маска для удаления классов с jquery на Javascript?

Решил отказаться от библиотеки jquery т.к. функционала немного. Застрял на функции - маска которая удаляет css классы по префиксу
Как переписать код на чистый Javascript?
// вызов $(logoDeerpfarm).removeClassWild("bg-*") 

		$.fn.removeClassWild = function(mask) {
			return this.removeClass(function(index, cls) {
				var re = mask.replace(/\*/g, '\\S+');
				return (cls.match(new RegExp('\\b' + re + '', 'g')) || []).join(' ');
			});
		};
  • Вопрос задан
  • 391 просмотр
Решения вопроса 2
/**
 * Удалить класс у элемента по маске
 * @param {HTMLElement} el - элемент
 * @param {string} m - маска
 * @return {HTMLElement}
 */
function removeClassWild (el, m) {
    let re = new RegExp('\\b' + m.replace(/\*/g, '\\S+') + '', 'g');
    el.className = Array.from(el.classList).filter(cl => !re.test(cl)).join(' ');
    return el;
}
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
function removeClasses(el, mask) {
  const re = new RegExp(`^${mask.replace(/\*/g, '\\S+')}`);
  el.classList.remove(...[...el.classList].filter(n => n.match(re)));
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы