在Javascript中列出
如何阻止此Javascript代码将迭代的最后一个数字传递给delete函数在Javascript中列出,javascript,arrays,Javascript,Arrays,如何阻止此Javascript代码将迭代的最后一个数字传递给delete函数 <html> <head> <meta charset="utf-8"> </head> <body> <div id="lista"></div> </body> <script type="application/javascript"> var dados = ['v
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div id="lista"></div>
</body>
<script type="application/javascript">
var dados = ['vassoura','lixo','papel'];
function deletar(elemento){
console.log(elemento);
}
function listar(){
var div = document.getElementById('lista');
for(i in dados){
campo = document.createElement("output");
button = document.createElement("button");
button.addEventListener("click",()=>{
deletar(dados[i]);
});
button.innerHTML="deletar";
div.appendChild(campo);
div.appendChild(button);
console.log(i);
campo.value = dados[i]+" ";
console.log(dados[i]);
}
}
listar();
</script>
var dados=['vassoura'、'lixo'、'papel'];
功能代表(elemento){
控制台日志(elemento);
}
函数listar(){
var div=document.getElementById('lista');
为了(我穿着护墙裙){
campo=document.createElement(“输出”);
按钮=document.createElement(“按钮”);
按钮。addEventListener(“单击”,()=>{
德莱塔(护墙板[i]);
});
button.innerHTML=“deletar”;
儿童部(坎波);
div.appendChild(按钮);
控制台日志(i);
campo.value=dados[i]+“”;
console.log(dados[i]);
}
}
listar();
它传递的是与迭代相对应的最后一个数字,因为当我单击按钮时,迭代已经完成了看起来这是一个具有可变范围的常见错误
最简单的方法是使用闭包或将(我在护墙板中)替换为(让我在护墙板中)首先,获取护墙板的长度。当i=dados_length(最后一个元素)时检查,然后跳过你想跳过的代码。这个问题实际上是一个重复的操作。。。对不起,伙计们…可能是重复的