for循环的闭包
来源:互联网 发布:telnet 内网端口不通 编辑:程序博客网 时间:2024/05/16 17:33
当我们用for循环为节点绑定数据或者做其他类似的事情的时候,会发现for循环出来的变量都是最后一个。如下:
function init() { var a = document.getElementsByTagName("p"); for( var i=0; i<a.length; i++ ) { a[i].onclick = function() { alert(i); } } }
按照我们正常的想法是点击每个P都应该输入相应的i 按顺序就是0 1 2 3 4 ,但是实际情况就是会直接输出的全都是5.这个原因就是因为,当我们点击之后,因为点击事件函数里面并没有i这个变量,所以他就会去父函数里面去找这个i,而这个时候,for循环早已经循环完毕,i也已经到了5.所以我们就会找不到这个想要的i。
那么我们就可以添加一个闭包来传参数。如下:
function init() { var a = document.getElementsByTagName("p"); for( var i=0; i<a.length; i++ ) { ( a[i].onclick = function(i) { alert(i); )(i) } } }
这样加一层闭包,我们就可以获取到我们想要的i了。
阅读全文
0 0
- for循环的闭包
- for循环的闭包
- JavaScript 闭包 for循环
- for循环 i 闭包
- 闭包与for循环
- for循环与闭包
- JavaScript闭包导致的for循环问题解决 【转】
- 解决javascript for 循环使用闭包的问题
- JS FOR循环的鼠标事件(闭包)
- 关于for循环与闭包的一点点点笔记
- 关于js for循环闭包的问题
- for循环时jquery闭包问题
- for循环时jquery闭包问题
- JavaScript闭包 取for循环i
- js for循环中的闭包
- JavaScript--------闭包 取for循环i
- js for循环中的闭包
- for循环绑定事件与闭包
- JavaScript基础知识(三)
- win7系统gpt分区激活工具哪个好?
- 关于make update-api命令
- Linux下安装php
- VC 使用OnCtlColor函数来改变控件颜色
- for循环的闭包
- Android FloatMath.ceil过时的解决办法
- React-Native
- 通用串口类
- cordova自定义插件步骤
- SRS(simple-rtmp-server)流媒体服务器源码分析--启动
- Navicat for MySQL使用手记--实现自动备份数据库
- Unity3D 04-GameObject,Component,Time,Input,Physics
- 工作中遇到的一些问题集合