for(var i=0;i<n;i++)
for循环给元素添加事件时貌似只会取变量的最后一步循环中的值。有什么方法可以把中间的值也用上吗??
能举个简单的例子吗?谢谢~~!!
for循环给元素添加事件时貌似只会取变量的最后一步循环中的值。有什么方法可以把中间的值也用上吗??
能举个简单的例子吗?谢谢~~!!
解决方案 »
- javascript:void(0) nclick="return false;"
- 感觉这段代码中的邮政编码函数有问题--急
- 设定时间间隔的代码,有一段代码不太明白,求解
- javascript的值怎样保存在session
- this与getelement..怎么不行..?
- 关于js replace 过滤网址中的url字体的小问题,大神请进
- 关于textarea的输入内容的长度判断
- 如何取得File框的文件路径,并添加到多行的Box里面,谢谢
- 请教一个大问题@!!!!
- easy ui datagrid 行编辑
- 求一段支持chrome的JS或者jquery写法
- jquery里改变css时,如果css属性名里包含'-',就报错。能解决吗?
//...do stuff
}alert(i) // n-1 跳出来, i根本都还在。处理方法是把i作为参数传进去,并立即执行var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].onclick = (function (k) {
return (function () {
alert(k);
});
})(i);
}如果循环体内写成
inputs[i].onclick = function () {
alert(i);
};
那么跳出来都是3
function mm(){
alert("第"+this.kk+"按钮");
}
function init(){
var a=document.getElementsByTagName("input");
for(var i=0;i<a.length;i++){
a[i].kk=i+1;
a[i].onclick=mm;
}
}
</script>
</head>
<body onload="init()">
<input type="button" value="1">
<input type="button" value="2">
<input type="button" value="3">
</body>
给每个对象加个只用来标记的属性试试吧 呵呵 楼上的方法太高端了 完全不懂 呵呵
什么叫只会取最后一次循环的值,从来没有这种说法!!真你说的这样js语言早就完蛋了
二楼说的情况倒是有,js里面for循环没有自己的作用域,你在for循环内部声明的变量循环结束后仍然可以访问
没看太懂:(function () {
alert(k);
});
})(i);
特别最后那个(i)
谢谢!~
//anonymous function executed
})();
//=>
var f = function () {
//named function
};
f();//executed(function (x) {
//anonymous function executed with a parameter
})(i);
==>
var f = function (x) {
//named function
};
f(i);//executed with parameter "i"