首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

简单js有关问题

2012-09-07 
简单js问题var icoarrnew Array(first,pre,next,last)for(i0i4i++){$(#+icoarr[i]).bind(

简单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实现,这个肯定可以

热点排行