2016-05-29 3 views
1

Я пытаюсь преобразовать текст в ячейку td в "Clicked!" когда нажимается, но при загрузке JS возникает ошибка. Я прочитал и знаю, что он не может использовать такой массив, но я не знаю, как его исправить.addEventListener не является функциональной ошибкой

window.addEventListener("load", table) 

function table(){ 
    var tables = document.getElementsByTagName("td"); 
    tables.addEventListener("click", clicked); 
} 
+3

Это было здесь просили так много раз ... «document.getElementsByTagName возвращает NodeList элементов DOM Каждый элемент имеет функцию addEventListener, но. массив не имеет одного. " –

ответ

4

document.getElementsByTagName возвращает не Node объекта, но NodeList объекта. Вы можете получить доступ к объектам Node по индексу.

Образец:

var tables = document.getElementsByTagName("td"); 

if (tables.length) { 
tables[0].addEventListener("click", clicked); 
} 

https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByTagName

+0

Вы не можете использовать '.forEach()' в NodeList. – Pointy

+0

Правда, спасибо! – gevorg

Смежные вопросы