我有一些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;
}
请有人给我解决方案
答案 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 );
}