boypush
@boypush
Вебмастер

Как повесить событие на все чекбоксы на странице через JS?

Приветствую, подскажите как повесить событие на все чекбоксы на странице, вот мой пример но он не работает:
async function upIncome(){
    let response = await fetch('test.php',{
        method: 'POST'
    });
    document.querySelector('.from-server').innerHTML = await response.text();
}
document.querySelectorAll("input[type='checkbox']").addEventListener('click', upIncome);

Мой пример выдает ошибку Uncaught TypeError: document.querySelectorAll(...).addEventListener is not a function
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
@alekcena
В попытках обрести навыки и умения
Антон,
В вашем случае когда вы пишете:
// Возвращается dom node - прям этот элемент из DOM
document.querySelector('Ваш элемент') 
// Вы прям на эту ноду вешаете событие
document.querySelector('Ваш элемент').addEventListener('click',f())

Когда же вы пишите:
// Возвращается "Масив" элементов - тип масив
document.querySelectorAll('Ваш элемент')
// У массива нет метода addEventListener - ошибка
document.querySelectorAll('Ваш элемент').addEventListener('click',f())


Решается перебором масива:
document.querySelectorAll('Ваш элемент').forEach(item=>{
// Item - каждый элемент в массиве и он же является node елементом из DOM 
item.addEventListener('click',f())
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
ITSOFT Москва
от 60 000 до 90 000 ₽
СИГМА Санкт-Петербург
от 190 000 ₽
JustControl.it Санкт-Петербург
от 50 000 ₽
31 июл. 2021, в 12:44
15000 руб./за проект
31 июл. 2021, в 12:18
5000 руб./за проект
31 июл. 2021, в 12:17
200000 руб./за проект