我想明白这个有什么用,没有这个就执行不了咯,求大神给解释一下,这个是遍历吗?for(var i=0;i<a.length;i++){funny(i)}<html><head><meta charset="gb2312"></head><body><a>1</a><br><a>2</a><br><a>3</a><br><a>4</a><br><a>5</a><br><a>6</a><br><a>7</a><br><a>8</a><br><a>9</a><br><a>10</a><script type="text/javascript"> var a=document.getElementsByTagName("a"); var funny = function(i){ a[i].onclick=function(){ alert(i+1) } } for(var i=0;i<a.length;i++){ funny(i)} </script></body></html>
3 回答
已采纳
千秋此意
TA贡献158条经验 获得超188个赞
funny(i)是闭包,为了每次能弹出不同的i而不是循环完毕后的全局变量i
/** 前三种写法都是闭包,最后一种是自定义属性 */
for (var i = 0; i < a.length; i++) {
(function(i){
a[i].onclick = function() {
alert(i + 1);
}
})(i);
}
for (var i = 0; i < a.length; i++) {
(function(){
var index = i;
a[i].onclick = function() {
alert(index + 1);
}
})();
}
for (var i = 0; i < a.length; i++) {
a[i].onclick = (function(i){
return function() {
alert(i + 1);
}
})(i);
}
for (var i = 0; i < a.length; i++) {
a[i].index = i;
a[i].onclick = function() {
alert(this.index + 1);
}
}添加回答
举报
0/150
提交
取消
