jQuery中数组循环添加onclick方法

初学jQuery

遇到问题:当时我用语句:onclick(方法),为标签绑定点击事件时,觉得那样一个个绑定太麻烦了;

产生想法:可不可以用循环直接遍历绑定呢?——可以!

具体操作:先用$("类名"),获取到一个数组,再通过循环数组下标为它们一个个添加onclick点击事件,具体代码如下:

$(function () {
    var c=$(".className");
    for(var i=0;i<c.length;i++){
        c[i].onclick="methodName(i)";
    }
});

实验结果:不可行

结果分析:感觉逻辑上时可行的,也没有语法错误,为什么不可以呢?原因是:function()是一个隐藏方法,它会在最后运行,在这里他会运行的比里面的循环要慢,所以最后赋值给数组 c 的下标值都会是循环结束后 i 的值

正确代码:

<script>
    $(function () {
        var asEach=$('a');
        for(var i=0;i<asEach.length;i++){
            $(asEach[i]).bind("click",{index:i},clickHandler)
        };
        function clickHandler(ti) {
            var i=ti.data.index;
            alert(i);
        }
    });
</script>
<body>
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
</body>

这样就可以循环为a标签添加返回值递增的onclick方法了!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值