情况:我从 API 获取 JSON 数组。“div”来自我代码前面的 getElementByID。
问题: addEventListener 只附加到我列表中的最后一个元素。
for(var i = 0; i < JSONarray.response.artists.length; i++){
var artistName = JSONarray.response.artists[i];
div.innerHTML += "<h4 id=\"artist" + i + "\" accessKey=\"" + artistName.id + "\">Artist Name: " + artistName.name + "</h4>";
document.getElementById("artist" + i).addEventListener("click", moreInfo, false);
}
奇怪的事情:如果我将 addEventListener 放在它自己的 for 循环中(使用完全相同的循环脚本),它会非常高兴,我的所有列表项都会得到它们的监听器。
问题:我不能把所有东西都放在一个 for 循环中,还是我的代码有什么原因吗?
注意:我使用 Chrome 来运行它,如果它碰巧是浏览器的话。
谢谢你的时间!