JS里获取到for循环中i的实时值。
来源:互联网 发布:易语言玫瑰花表白源码 编辑:程序博客网 时间:2024/06/05 13:25
在使用for循环的时候经常发现i的值在子函数里永远为最大值,其中涉及到的作用域问题就不再多说了。只在这里简单说一下使用闭包和自执行函数的解决方法;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<title>新建网页</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
html,body{
height: 100%;
padding: 0;
margin: 0;
}
.button{
height: 40px;
width: 150px;
position:relative;
top: 50%;
left: 50%;
margin-top: -20px;
margin-left: -75px;
}
</style>
</head>
<body>
<div class="button">
<button>1</button>
<button>2</button>
<button>3</button>
<button>4</button>
<button>5</button>
</div>
<script>
var abc=document.getElementsByTagName("button")
/*for (var i = 0; i <abc.length; i++) {
this.onclick=function(){
alert(i) //函数获取不到i则去父级寻找, 这时i已经循环为5,所以i永远为5
}
}; */
/* for (var i = 0; i < abc.length; i++) {
(function(e){
alert(e) //自执行函数,把i传入e,可以获取到i的各个数值
})(i)
};*/
for (var i = 0; i < abc.length; i++) {
(function(e){ //自执行函数实时把i传入e
abc[e].onclick=function(){ // 通过传入的e获取到哪个按钮发生了点击事件
alert(e) //弹出e(此处e为i实时对应值)
}
})(i)
}; //采用闭包和自执行函数获取i
</script>
</body>
</html>
0 0
- JS里获取到for循环中i的实时值。
- for循环里的i++和++i的效率
- JS for循环结束后i的值
- js关于for循环里的setTimeout
- Java for循环里i++位置改变的影响
- javascript解决for循环中i取值的问题
- 用js的for循环获取radio选中的值
- 用js的for循环获取radio选中的值
- for循环里的值添加到数组后在循环外打印数组为空
- 在XSL里执行类似for(i=0;i〈x;i++)的循环
- 在XSL里执行类似for(i=0;i〈x;i++)的循环
- 在XSL里执行类似for(i=0;i<n;i++)的循环
- WdatePicker 如何在js里获取到选中的值
- for循环中i++与++i的效率探究
- for循环中i++与++i的效率探究
- for循环中i++与++i的效率探究
- for循环中i++与++i的效率探究
- for循环中i++和++i的区别
- ASP.NET MVC5 默认用户管理
- ConcurrentHashMap到底是什么?
- 使用Bmob云端服务器模拟简单的注册登录
- Eclipse 安装 Python插件
- 关于DG配置备库无法Real-Time Apply,无法实时查询的一个案例
- JS里获取到for循环中i的实时值。
- Android中AIDL进程间通信
- 比赛分组问题(一)
- 带有行标题栏的表格
- 详解正则表达式
- Scripts to resize standby redolog files
- ios自定义UITabBar-仿写掌上英雄联盟的UITabBar
- PHP+MYSQL+AJAX 第二章 PHP入门
- 倒排索引算法的Java实现