<分区>
为什么下面的代码在点击时不打印它对应的值?
相反,它打印 5?
var recipeDiv = document.createElement("div");
var recipeUL = document.createElement("ul");
for (var i = 0; i < 5; ++i) {
var listNode = document.createElement("li");
listNode.innerHTML = i;
listNode.onclick = function() { alert(i); }
recipeUL.appendChild(listNode);
}
recipeDiv.appendChild(recipeUL);
addNodeToDOM(document.body, recipeDiv, 'recipe');
function addNodeToDOM(element, node, id) {
var div = document.createElement('div');
div.id = id;
div.appendChild(node);
element.appendChild(div);
}
我能够在此处重现错误:jsfiddle
但基本上,我不确定这是否是将元素正确添加到 DOM 的惯例。如果是这样,为什么每次我点击列表元素时,它都不显示