alert(aBtn[i].abc); 为什么不能执行?!大神们求解

forevernyn 发布于 2015/03/16 18:05
阅读 183
收藏 0

<style>

</style>
<script>
window.onload = function(){
  var aBtn = document.getElementsByTagName('input');
  var len = aBtn.length;
  for( var i=0; i<len; i++){
   aBtn[i].abc = 123;
   aBtn[i].onclick = function(){
       alert(aBtn[i].abc);    //为什么不能执行!!!!!!!!!下面三行任意一个都能执行!!!!!!!!!!!!!!!!!!!
    alert(aBtn[0].abc);
    alert(aBtn[1].abc);
    alert(aBtn[2].abc);
   };
  }  
};
</script>
</head>

<body>
<input type="button" value="按钮1" />
<input type="button" value="按钮2" />
<input type="button" value="按钮3" />
</body>

加载中
0
_
_Yud

var index=i;

alert(aBtn[index].abc);


0
某刀
某刀

你可以试试 alert(i),看看i的值是多少,应该就明白了


0
realanan
realanan
你可以查一下javascript中“闭包”这个术语
forevernyn
forevernyn
好~3Q~
0
S
SeanDjj
把aBtn[i]改成this就可以了 i值传不进来的
forevernyn
forevernyn
原来如此~~~弹出显示的是[object HTMLInputElement]。突然懂了~~~谢谢啦
返回顶部
顶部