@Mosapi

По клику на объект определить к какой группе классов он принадлежит?

На странице есть много объектов создающихся через for:

html = document.querySelector('body');
for(var i = 1; i <= 20; i++){
html.insertAdjacentHTML("beforeend", "<div class='data"+i+"'></div>");
}
...

https://jsfiddle.net/2t96wag8/2/
Необходимо по клику на любой из div определить, что в имени его класса есть слово data или par или ... и т.д. И дальше вывести алерт, что объект принадлежит соответствующему классу.
Без проблем регистрирую клик и получаю класс каждого нажатого объекта, но никак не могу понять, как определить принадлежность к тому или иному классу и вывести алерт.
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Во-первых - вы не рассказали, зачем вам тут нужны именно классы. А значит - классы вам не нужны. Меняйте на data-атрибут. Например, type (data-type).

Во-вторых:

document.addEventListener('click', e => {
  const type = e.target.closest('[data-type]')?.dataset.type;
  if (type) {
    console.log(type.replace(/\d/g, ''));
  }
});

// или

document.querySelectorAll('[data-type]').forEach(function(n) {
  n.addEventListener('click', this);
}, e => console.log(e.currentTarget.dataset.type.match(/\D+/)[0]));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dmitry-toster
если я правильно понял задачу, то можно так
т.е:
const classes = ['data', 'par', 'opt'];
classes.some(c => block.includes(c));
Ответ написан
Ваш ответ на вопрос

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

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