@fuckingawesomenigga

Как добавить класс элементам, значение определённого атрибута которых присутствует в массиве?

Имеется массив: const arr = [ 'qwe', 'asd', 'zxc' ];.

И элементы:

<div data-i="qwe"></div>
<div data-i="rty"></div>
<div data-i="fgh"></div>
<div data-i="asd"></div>
<div data-i="zxc"></div>
<div data-i="iop"></div>

Как добавить класс элементам, у которых значение data-i присутствует в массиве?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const attrName = 'data-i';
const attrValues = [ 'qwe', 'asd', 'zxc' ];
const className = 'класс';

Просто добавить класс:

document
  .querySelectorAll(attrValues.map(n => `[${attrName}="${n}"]`))
  .forEach(n => n.classList.add(className));

Или, если также надо у неподходящих элементов класс удалить:

document.querySelectorAll(`[${attrName}]`).forEach(n => {
  n.classList.toggle(className, attrValues.includes(n.getAttribute(attrName)));
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект