2017-10-04 1 views
-1

Comment puis-je obtenir ce code javascript pour arrêter de dépenser le dernier numéro d'itération à la fonction de suppression?Liste javascript

<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> 

il passe la dernière itération du numéro correspondant pourquoi, lorsque je clique sur l'itération bouton a été fait et finalisé

+3

vous plaît seulement des questions post Inglês. ou poser votre question à https://pt.stackoverflow.com/ –

+0

Je vote pour fermer cette question hors sujet, car https://pt.stackoverflow.com/ – epascarello

+1

La question est vraiment dupe de https://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example – epascarello

Répondre

0

On dirait ici est une erreur commune avec une variable de portée.

simple est d'utiliser soit la fermeture ou remplacer for(i in dados) au moins avec for(let i in dados)