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

使用for循环添加点击事件时,获取i值的方法

时间:2017-02-24 10:56:48      阅读:332      评论:0      收藏:0      [点我收藏+]

标签:循环   cli   for循环   blog   logs   log   使用   执行   div   

比如页面上有一个ul,数个li,现在给li添加点击事件。

    var li = document.getElementsByTagName("li");
    for(var i = 0; i < li.length; i++) {
	li[i].addEventListener("click",function () {
	console.log(i);
	})
  }            

但是,这样写之后我们发现,点击任何一个li,打印的值都为5,这是因为闭包中共用i值,而i的值由于执行for循环,都变为了5

为了正常显示i值,我们可以使用如下方法:

 

 for (var i = 0; i < lis.length; i++) {
    (function(arg){
        li[arg].onclick = function(){
            console.log(arg);
        };
    })(i)   
 }

  

类似于这样

			var li = document.getElementsByTagName("li");
			for(var i = 0; i < li.length; i++) {
				getConsole(i);
			}
			
			
			function getConsole(i){
				li[i].addEventListener("click", function() {
					console.log(i);
				});
				
			}

  

使用for循环添加点击事件时,获取i值的方法

标签:循环   cli   for循环   blog   logs   log   使用   执行   div   

原文地址:http://www.cnblogs.com/blogs-8888/p/6437350.html

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