07.闭包_引入.html 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <button>测试1</button>
  11. <button>测试2</button>
  12. <button>测试3</button>
  13. <!--
  14. 需求:点击某个按钮,提示“点击的是第n个按钮”
  15. -->
  16. <script>
  17. var btns = document.getElementsByTagName('button')
  18. //遍历加监听
  19. // for(var i = 0 ,length = btns.length ; i < length ; i++){
  20. // var btn = btns[i]
  21. // btn.onclick = function(){
  22. // alert('点击的是第'+(i+1)+'个按钮')
  23. // }
  24. // }
  25. // for (var i = 0, length = btns.length; i < length; i++) {
  26. // var btn = btns[i]
  27. // //将btn所对应的下标保存在btn上
  28. // btn.index = i
  29. // btn.onclick = function () {
  30. // alert('点击的是第' + (this.index + 1) + '个按钮')
  31. // }
  32. // }
  33. //利用闭包
  34. for (var i = 0, length = btns.length; i < length; i++) {
  35. (function(i){
  36. var btn = btns[i]
  37. btn.onclick = function(){
  38. alert('点击的是第'+(i+1)+'个按钮')
  39. }
  40. })(i)
  41. }
  42. </script>
  43. </body>
  44. </html>