javascript – So binden Sie verschiedene Ereignisse basierend auf Parametern an tr in der Tabelle
PHPz
PHPz 2017-05-16 13:22:03
0
2
622
function update() {
    var container = document.getElementById("ItemContainer");
    container.innerHTML = "";
    for(var i=0;i<this.bookMarkList.length;i++){        
        var name = this.ItemContainer[i].name;
        var tr = document.createElement('tr');              
        var td = document.createElement('td');
        tr.appendChild(td);
        tr.onclick =  function(){add(name);}; 
      container.appendChild(tr);
    }    
}

Die gleiche Funktion ist gebunden, aber die von jedem Tr übergebenen Parameter sind unterschiedlich. Wie soll sie geschrieben werden?
Schreiben Sie nun so, dass jedes Tr an den zuletzt zugewiesenen Parameter gebunden ist.

PHPz
PHPz

学习是最好的投资!

Antworte allen(2)
过去多啦不再A梦
    for(var i=0;i<this.bookMarkList.length;i++){        
        (function(i){
            var name = this.ItemContainer[i].name;
            var tr = document.createElement('tr');              
            var td = document.createElement('td');
            tr.appendChild(td);
            tr.onclick =  function(){add(name);}; 
            container.appendChild(tr);
        })(i)
    }  
Peter_Zhu
// 给你写个demo吧
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<style>

</style>
<body>
<table id="ItemContainer" border="1" width="100"></table>
<script>
    function add (name) {
        alert(name);
    }
    function update() {
        var container = document.getElementById("ItemContainer");
        console.log(container);
        container.innerHTML = "";
        for(let i=0; i<5; i++) {        
            let name = i;
            let tr = document.createElement('tr');              
            let td = document.createElement('td');
            td.innerHTML = i;
            tr.appendChild(td);
            console.log(name)
            tr.onclick = function (){
                return add(name);
            }; 
          container.appendChild(tr);
        }  
    }
    update()  
</script>
</body>
</html>
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!