Задать вопрос
boypush
@boypush
Geek

Как повесить событие на все чекбоксы на странице через 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
  • Вопрос задан
  • 931 просмотр
Подписаться 1 Простой 3 комментария
Решения вопроса 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())
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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