Задать вопрос
Dazle_PrG
@Dazle_PrG
WEB программист

В цикле for много кнопок как сделать .addEventListener('click', к каждой кнопке?

Если я разместил 1 обычный html код с кнопкой то код работает с циклом for нет, и хорошо было бы передать значение в ней.
let polz = <%- polz %>;
let p = 0;

for(p; p < polz.length; p++) {
polz2.innerHTML += '<div id="plus"><img src="p14.png"/>'+polz[p].name+'</div>';
}

/* +1 к рейтингу */

if(document.getElementById('plus')){
plus.addEventListener('click', () => {

console.log('нажал на кнопку');
});
}

Ошибку выдает Uncaught TypeError: plus.addEventListener is not a function
  • Вопрос задан
  • 316 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 2
@karminski
Senior React.JS Developer
1. У вас plus нигде не определен. Вы его ищете с помощью getElementById, но не сохраняете в переменную plus.
2. Почитайте про делегирование событий https://learn.javascript.ru/event-delegation. Это именно то, что вам нужно.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
id элемента должен быть уникальным в пределах одного документа. Вы создаёте много элементов с одним и тем же id, так делать нельзя. Если нужен способ выделения множества однотипных элементов, то используйте class.
Для назначения обработчика можно использовать всплытие событий (делегирование), как уже написал Антон Иванов, либо querySelectorAll() с обходом полученного списка через foreach.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
Если у них общий родительский элемент, то может быть проще навесить один метод на родительский элемент, а уже в методе проверять, какой потомок был нажат (event.target)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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