在for循環中動態拼接字符串和添加事件


不多說,直接開始吧

//---------------------------------ES6之前常用寫法-----------------------------

for(var i = 0;i<10;i++){

  /閉包寫法

  (function(j){

             var a = document.createElement("div");

        a.innerHTML = j + " ";

    a.addEventListener("click",function(){

      alert(j);

    });

  })(i)  

}

如果不用匿名函數寫法,i 一直在同一個作用域中,每次循環都會被替換,所以alert()的是同一個值

//----------------------------ES6寫法---------------------------------------------

for(let i = 0;i<10;i++){

     let a = document.createElement("div");

        a.innerHTML = i + " ";

    a.addEventListener("click",function(){

      alert(i);

    });

}

es6引入了塊作用域概念使用let定義變量則每次循環都會生成一個全新的變量,避免了上面那種情況


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM