suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – So binden Sie verschiedene Ereignisse basierend auf Parametern an tr in der Tabelle

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.

PHPzPHPz2793 Tage vor680

Antworte allen(2)Ich werde antworten

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:24:03

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

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:24:03

    // 给你写个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>
    

    Antwort
    0
  • StornierenAntwort