JS错误对象没有方法addEventListener

时间:2014-02-20 19:14:20

标签: javascript

我有以下代码

var el = document.querySelectorAll('.block');
console.log(el);
el.addEventListener('click', function () {
    alert('hello');
}, false);

但是,它会返回错误Uncaught TypeError: Object #<NodeList> has no method 'addEventListener'

为什么我会收到此错误,如何解决此问题?

2 个答案:

答案 0 :(得分:7)

因为,正如错误消息告诉您NodeLists没有an addEventListener method.您应该遍历节点列表,并addEventListener到每个元素 - 假设您要添加N个听众。

或者,select only a single element,代码的其余部分将按照书面形式运行。

答案 1 :(得分:6)

方法querySelectorAll()返回NodeList,它是节点的集合。

因此,您需要迭代它以附加事件侦听器

var el = document.querySelectorAll('.block');
for(var i=0; i < el.length; i++){
    el[i].addEventListener('click', function () {
        alert('hello');
    }, false);
}