单击函数不在document.getElementsByClassName上

时间:2016-05-04 16:37:54

标签: javascript click

我有以下代码

<div class="test">Click Me</div>
<script>
document.getElementsByClassName('test').addEventListener('click', function(){
  alert('Hello world');
}, false);

警报未触发。 JS小提琴:http://jsfiddle.net/ssod54fh/

1 个答案:

答案 0 :(得分:1)

迭代每个元素和bind事件,

[].forEach.call(document.getElementsByClassName('test'),function(elm){
 elm.addEventListener('click', function(){
  alert('Hello world');
 }, false);
});

基本上getElementsByClassName会返回nodeList。这意味着节点Object的集合。 node对象在其原型中具有addEventListener函数但不是nodeList。