examp1
@examp1

Из-за чего может быть ошибка Cannot read property 'addEventListener' of null?

const questionBlocks = document.querySelectorAll('.question > .body');

questionBlocks.forEach(item => {
        const btn = item.querySelector('.btn-next');
        console.log(btn);
        btn.addEventListener('click', (e) => {
            e.preventDefault();
            console.log(e.target);
        })
    })
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Ошибка из-за того, что querySelector не нашел элемент, а у null нет метода addEventListener.

Переделать можно так:
const questionsContainer = document.querySelector('.question'); // общий родитель
questionsContainer.addEventListener('click', myQuestionsClickHandler); // слушаем все клики

function myQuestionsClickHandler(evt) {
  const btnNext = evt.target.closest('.btn-next');
  if (btnNext) { // если клик по кнопке или внутри нее
    evt.preventDefault();
    console.log(btnNext);
  }
}

чтение по теме
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
querySelector если ничего не нашел возвращает null
Ответ написан
Ваш ответ на вопрос

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

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