Javascript 使用onclick动态创建元素只执行最后一个元素
我正在为动态创建的html元素动态创建onclick事件。我可以使元素很好,但是当我单击一个特定的元素时,它总是对最后创建的元素运行onclickJavascript 使用onclick动态创建元素只执行最后一个元素,javascript,html,dynamic,Javascript,Html,Dynamic,我正在为动态创建的html元素动态创建onclick事件。我可以使元素很好,但是当我单击一个特定的元素时,它总是对最后创建的元素运行onclick var parentNode = document.getElementById('mpacks'); parentNode.innerHTML = ''; for (var i = 0, size = listOfItems.length; i < size; i++){ var listNode = document.cre
var parentNode = document.getElementById('mpacks');
parentNode.innerHTML = '';
for (var i = 0, size = listOfItems.length; i < size; i++){
var listNode = document.createElement('LI');
var tmp = document.createElement('a');
tmp.id = listOfItems[i];
tmp.innerText = listOfItems[i];
listNode.appendChild(tmp);
parentNode.appendChild(listNode);
tmp.onclick = function() {insertParam(listOfItems[i])};
}
var parentNode=document.getElementById('mpacks');
parentNode.innerHTML='';
for(var i=0,size=listOfItems.length;i
例如:如果我有列表
[link1,link2,link3]
,我会很好地呈现它们,它们都会显示在我的页面上。当我单击链接1时,我希望它被传递到onclick函数中,如图所示<代码>插入参数(“link1”)。相反,当我单击link1时,出于某种原因,它传入了insertParam(“link3”)。这是因为关闭。在for循环中使用let
而不是var
for (let i = 0, size = listOfItems.length; i < size; i++)
for(设i=0,size=listOfItems.length;i
它成功了。非常感谢。