recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment lier différents événements à tr dans un tableau en fonction des paramètres

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

La même fonction est liée, mais les paramètres passés par chaque tr sont différents. Comment doit-elle être écrite ?
Maintenant, écrivez comme ceci, chaque tr est lié au dernier paramètre attribué.

PHPzPHPz2793 Il y a quelques jours676

répondre à tous(2)je répondrai

  • 过去多啦不再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)
        }  

    répondre
    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>
    

    répondre
    0
  • Annulerrépondre