继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

JS实现循环给元素绑定事件

三环没有少_hshhshs
关注TA
已关注
手记 3
粉丝 1
获赞 348

HTML代码:

<div class="wrap">  
        <a href="javascript:;" class="link">第一个链接</a>  
        <a href="javascript:;" class="link">第二个链接</a>  
        <a href="javascript:;" class="link">第三个链接</a>  
</div> 

原JS代码(发现不管点哪个链接都是弹出“3”):

window.onload = function()   
{  
     var aLi = document.getElementsByTagName("a");  
     for(var i = 0; i < aLi.length; i++)   
     {  
         aLi[i].onclick = function()   
         {  
                alert(i);   //3  
         }     
      }  
} 

解决方案

window.onload = function()   
{  
    var aLi = document.getElementsByTagName("a");  
    for(var i = 0; i < aLi.length; i++)   
    {  
        var a = function(k)  
        {  
             aLi[k].onclick = function()   
             {  
                    alert(k);  
             }  
        }a(i);   
  }        
}  
打开App,阅读手记
69人推荐
发表评论
随时随地看视频慕课网APP

热门评论

第一种写法本来就不好、给每个a都绑定了一个onclick、很多个a的时候呢、你的性能呢

用委托也可以,大家可以常识delegate委托,但针对one得事件不合适

var a=function(i){} a(i);第一次看见这种,回去宿舍调试一下代码

查看全部评论