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

jquery关于遍历数组的一个问题

$(function () {
 
    var str = "1,2";
    var arr = str.split(',');
    for (var i = 0; i < arr.length; i++) {
        $("#a"+arr[i]).bind("click", function () {
            alert(arr[i]);
        });
    }
})


首先,我页面有两个链接,他们的ID分别是1,2
我的做法很简单,单击ID为1的链接,则弹出1;单击id为2则显示2;
但目前我的写法却显示出undefined,请问我要如何改
jquer jQuery 遍历 函数 JavaScript

------解决方案--------------------

$(function () {  
    var str = "1,2";
    var arr = str.split(',');
    for (var i = 0; i < arr.length; i++) {
        $("#a"+arr[i]).bind("click", (function(_i){
         return function () {
             alert(_i);
         }
        })(arr[i]));
    }
});

------解决方案--------------------
<button id="a1">a1</button>
<button id="a2">a2</button>
<script type="text/javascript">
    //这个需要用到闭包
    var str = "1,2";
    var arr = str.split(',');
    for (var i = 0; i < arr.length; i++) {
        document.getElementById("a"+arr[i]).onclick=(function(n){
            return function(){
                alert(n);
            }
        })(arr[i]);
    }
</script>