Задать вопрос
@ramil456

Не работает метод querySelectorAll, как исправить?

Я создал 6 кнопок и при каждом нажатии на любую кнопку должна срабатывать функция, а у меня функция не срабатывает при использовании метода querrySelectorAll, а если использовать querrySelector, то будет работать только первая кнопка, как исправить? P.s я только изучаю js, не бейте
Вот код js:
document.querySelectorAll('.menu-button').onclick = function () {
	document.getElementById('dialog-box').style.display = 'block'
}

Код html:
<div class="menu-button">
	<a href="#" class="menu-link">Купить</a>
</div>
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Метод querySelectorAll возвращает коллекцию элементов и у неё нет свойства onclick, метода addEventListener и т.п.
По коллекции нужно итерировать и назначать обработчик события для каждого элемента в отдельности.
Как это сделать, написано в каждом первом учебнике JavaScript.
Ответ написан
Комментировать
NikFaraday
@NikFaraday
Student full-stack Developer
document.querySelectorAll('.menu-button') возвращает массив элементов, а не один элемент. В вашем случае нужно так:

let buttons = document.querySelectorAll('.menu-button')
buttons.forEach(btn => {
     btn.onclick = () => {...}
});


Или другой вариант для вас, вам нужно использовать не document.querySelectorAll('.menu-button'), а
document.querySelector('.menu-button').onclick = () => { ... }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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