Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как получить все элементы через query querySelector?

Gool Ученик (210), на голосовании 1 год назад
Как получить все элементы через query querySelector?
Могу зацепиться только за один line
Если пишу querySelectorAll, ошибка в консоли, что index.js:9 Uncaught TypeError: line.addEventListener is not a function

 let line = document.querySelectorAll(".line"); 
line.addEventListener("click", () => {
console.log("line");
});
Если без all, то
 let line = document.querySelector(".line"); 
line.addEventListener("click", () => {
console.log("line");
});
Так же пробовал через id, все тоже самое
Голосование за лучший ответ
Зеленая бяка Просветленный (41309) 1 год назад
Тут скорее всего дело в том, что в первом случае line - это массив элементов. Для массива нельзя добавить eventListener. Нужно добавлять eventListener для каждого элемента массива отдельно. В цикле, например
GoolУченик (210) 1 год назад
то есть, нужно перебирать через цикл for? или forEach?
Зеленая бяка Просветленный (41309) Gool, как вам угодно, я б вот это использовала https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
Яков Гото Искусственный Интеллект (321144) 1 год назад
Это база.
 let line = document.querySelectorAll(".line"); 

line.forEach(el => {
el.addEventListener('click'), (e) {
console.log(e.target);
}
}
 for (let el of line) el.addEventListener('click', (e) => { 
console.log(e.target);
})
Похожие вопросы