为什么显示此错误Uncaught TypeError:无法读取undefined的属性'addEventListener'

时间:2016-11-19 17:18:37

标签: javascript jquery typeerror addeventlistener

我有一些JavaScript代码可以提供此错误

Uncaught TypeError: Cannot read property 'addEventListener' of undefined

我的代码:

HTML:

<div class="main">
  <h1 id="our-heading">The page heading</h1> 
  <button id="button">Add Item</button>
  <ul id="our-list">
    <li>Item one</li>
    <li>Item two</li>
    <li>Item three</li>
    <li>Item four</li>
    <li>Item five</li>
  </ul>
</div>

使用Javascript:

var ourHeadline = document.getElementById("our-heading");
var listItems = document.getElementById("our-list").getElementsByTagName("li");

for (var i = 0; i<= listItems.length; i++){
    listItems[i].addEventListener("click", activateItem );
}

function activateItem(){
    ourHeadline.innerHTML = this.innerHTML;
}

请有人给我解决方案

1 个答案:

答案 0 :(得分:1)

循环直到数组的最后一项,在你当前的代码中循环直到数组listItems的长度

for (var i = 0; i<= listItems.length; i++){
    listItems[i].addEventListener("click", activateItem );
}

由于数组索引从0开始,对于循环的最后一次迭代,由于下面的代码,你将得到上面提到的未定义错误

listItems[i].addEventListener

将您的代码更改为

for (var i = 0; i< listItems.length; i++){
    listItems[i].addEventListener("click", activateItem );
}