码迷,mamicode.com
首页 > 其他好文 > 详细

闭包题

时间:2017-12-09 23:51:26      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:asc   es2017   http   java   elements   list   body   false   dev   

 


  **********************************************************************************************************************************


题目:

技术分享图片

一般错误答案如下:

1     var li = document.getElementsByTagName(li);
2     for(var i = 0; i < li.length; i++){
3         li[i].addEventListener(‘click‘,function(){
4             console.log(‘我是第‘ + i + ‘个li‘);
5         },false);
6     }

结果运行结果为,点击不同的li都显示是5

技术分享图片

 

 

正确答案如下:

(用到立即执行函数)

 1 <body>
 2     <ul>
 3         <li>a</li>
 4         <li>a</li>
 5         <li>a</li>
 6         <li>a</li>
 7         <li>a</li>
 8     </ul>
 9 <script type="text/javascript">
10     var li = document.getElementsByTagName(‘li‘);
11 
12     var li = document.getElementsByTagName(‘li‘);
13     for(var i = 0; i < li.length; i++){
14         (function(j){
15             li[j].addEventListener(‘click‘,function(){
16                 console.log(‘我是第‘ + j + ‘个li‘);
17             },false);
18 
19         }(i));
20     }
21 
22 </script>
23 </body>

技术分享图片


 

闭包题

标签:asc   es2017   http   java   elements   list   body   false   dev   

原文地址:http://www.cnblogs.com/wood2012/p/8012911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!