@DmitriiAl
начинающий верстальщик

Почему возникает ошибка в консоле при использовании querySelectorAll?

Есть две страницы сайта. На каждой странице есть элементы, при клике на которые должны происходить одинаковое событие (открытие попап окна). Но на первой странице элемен один, а на второй три элемента. Всем элементам присвоен общий класс для удобства.

Если я в js использую метод querySelector то, соответственно, выбирается первый подходящий элемент. И тогда на первой странице срабатывает событие и на второй, но только на первом элементе.

Логично использовать метод querySelectorAll. Но при его использовании сразу же на появляется ошибка в консоле и событие не срабатывает ни на какой странице. Ошибка - "Uncaught TypeError: openPopap.addEventListener is not a function"

Понимаю, что надо использовать цикл для второй страницы, но до этого еще не дошел т.к. не могу решить пока эту проблему.

var openPopap = document.querySelectorAll('.open-popap');

openPopap.addEventListener('click', function(openForm) {
  openForm.preventDefault();
  formSection.classList.toggle('modal-form--open');
});
  • Вопрос задан
  • 342 просмотра
Решения вопроса 1
evgeniy8705
@evgeniy8705
Повелитель вселенной
openPopap --> Array --> [Node, Node, Node, ...]

openPopap.forEach(item => {
  item.addEventListener("click", event => {
    event.preventDefault();

    formSection.classList.toggle("modal-form--open");
  });
});

Почему возникает ошибка в консоле при использовании querySelectorAll?

Понимаю, что надо использовать цикл для второй страницы, но до этого еще не дошел т.к. не могу решить пока эту проблему.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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