我有一个for循环,它创建带有ID的
元素,例如'category1'、'category2'等。该循环遍历一个键/值数组,该数组看起来像这样:
"0" : "Java",
"1" : "JavaScript",
"2" : "HTML"
因此,div的ID为“category” +键。
在将元素添加到容器div的innerHTML中的for循环中,我添加了一个onclick事件。
这就是我所说的for循环:
for (var key in categories) {
categoriesBlock.innerHTML += '<div class="category" id="category' + key + '">' + categories[key] + '</div>';
document.getElementById('category' + key).onclick = function() { showPostsForCategory(key, categories[key]); }
}
其中categories
是上述数组。
问题在于,onclick
仅适用于数组中的最后一个元素。如果我使用Safari调试器并输入“category3.onclick”,它会显示null。如果我输入“category4.onclick”(即最后一个元素),它会返回正确的函数。
这是怎么可能的?如何解决?