日期:2014-05-16  浏览次数:20318 次

简单js问题
var icoarr=new Array("first","pre","next","last");

for(i=0;i<4;i++){
$("#"+icoarr[i]).bind('click',function(){
alert(icoarr[i]);//我想实现,点击,分别弹出first,pre,next,last这里没达到效果,求教
});
}
<a id="first"></a>
<a id="pre"></a>
<a id="next"></a>
<a id="last"></a>

------解决方案--------------------
js里面for语句是没有独立作用域的,所以这儿的i实际是全局的,点击事件发生时i的值已经是4了,所以你还用i的话索引就不对而且已经超出了
var icoarr=new Array("first","pre","next","last");

for(i=0;i<4;i++){
var obj=document.getElementById(icoarr[i]);
obj.index=i;
obj.onclick=function(){
alert(icoarr[this.index]);
}
}
原生js实现,这个肯定可以