这个涉及到闭包的知识,你应该是初学者,我就讲浅一点吧
在for循环里,实际上的执行顺序是,依次给四个input绑定事件,但该事件函数并未得到初始化,然后递增i变量,并将i变量留在内存中,所以,循环之后,i的值是退出循环的条件,也就是4,而接下来才开始初始化各个input标签的事件函数,var num=i这时的i已经是4了。
如果要实现你想要的效果的话,可以这样子
var aBtn=document.getElementsByTagName("input");
for(var i=0;i{
(aBtn[i].onclick=function ()
{
var num=i;
alert(num);
})(i)
}
加了括号之后,事件函数就会立即初始化,而不是等循环退出才开始