Вынуть значение из getAttribute по клику в элементе, созданном в js
Есть div создаваемый в js
let divItem = document.createElement('div',);
divItem.className = 'item';
divItem.setAttribute('qqq', '123');
divItem.addEventListener('click', buy);
nameCategory.append(divItem);
Как видно, я пытаюсь повесить на него обработчик и атрибут, или датасет с данными, еще не понял. Сам обработчик:
function buy(e) {
console.log(e.target.getAttribute('qqq'));
}
Я получаю undefined. Думаю что дело в чем то типа потери контекста или какие то проблемы со всплытием, и наверное это решилось бы обработчиком на jquery повешенным на body слушающим всплытие - но я не могу использовать jQuery. Что делать?
Ответы (1 шт):
Автор решения: Сергей Мишин
→ Ссылка
Да нет, всё работает. Может нужен текстовый контент или что-то, что покажет, что вы нажимаете именно на тот див?
let nameCategory = document.getElementById('nameCategory');
let divItem = document.createElement('div');
divItem.className = 'item';
divItem.setAttribute('qqq', '123');
divItem.textContent = 222;
divItem.addEventListener('click', buy);
nameCategory.append(divItem);
function buy(e) {
console.log(e.target.getAttribute('qqq'));
}
<div id="nameCategory"></div>