将eventListeners添加到NodeList中的每个元素

时间:2016-09-01 16:06:58

标签: javascript arrays

我想添加eventListener Click to NodeList的每个元素。我尝试了以下

var test = document.getElementsByClassName('productLnk')

function theTest (element,index,array){
 element.addEventListener('click',function(){
   console.log('hello')
 })
}

test.forEach(theTest)

它返回test.forEach不是函数

1 个答案:

答案 0 :(得分:3)

您需要将NodeList转换为Array才能使用 Array#forEach 方法进行迭代。在ES6中使用 Array.from 方法

Array.from(test).forEach(theTest)

或旧版浏览器使用 Array#slice Function#apply Function#call

[].slice.call(test).forEach(theTest)