javascript - Jquery绑定(bind)循环变量到getJSON函数

标签 javascript jquery

我有一个 for 循环,它获取一个 json 数组并将它与另一个列表的变量一起填充到一个表中。我的问题是我无法在 get 方法中访问 i 。但是我有 mylist 及其所有内容。我尝试使用 bind(this,i) 将函数绑定(bind)到变量 i,但上面写着 .getJSON() 不是函数。这是相关代码。

var mylist = ["a", "b", "c"]
for (i = 0; i < mylist.length; i++) {

    urlstr = "/" + mylist[i]; // Generate url
    $.getJSON(urlstr, function(data) {
        html = "<tr><td>" + mylist[i] + "</td><td>" + data.string[0] + "</td></tr>";
        $("#tableresult").append(html); //this returns undefined for mylist[i]
        console.log(i); //this returns 3 which is the length of list
    });

}

简而言之,我需要 getJSON 之外的变量可以在 getJSON 中访问。 有人可以帮忙吗?谢谢和问候。

最佳答案

这应该与在几乎任何其他循环中绑定(bind)循环变量没有什么不同。由于您使用的是数组,因此最简洁的方法是使用 Array#forEach:

var mylist = ["a", "b", "c"];
mylist.forEach(function (item) {
    var urlstr = "/" + item;
    $.getJSON(urlstr, function(data){
         var html = "<tr><td>" + item + "</td><td>" + 
                    data.string[0] + "</td></tr>";
         $("#tableresult").append(html);
        console.log(item);
    });
});

关于javascript - Jquery绑定(bind)循环变量到getJSON函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29343701/

相关文章:

javascript - 同一页面JS多个倒计时

javascript - 如何向 PhotoSwipe 添加按钮?

javascript - 使用 setState() 使用 API 中的数据更新 View - ReactJS

javascript - 在函数js中传递变量

php - 基于 Javascript 的绘图/图表工具包与基于 PHP 的工具包

javascript - 从 .js 文件或 JavaScript 函数中提取所有变量

javascript - 基金会4 : Joyride firing postRideCallback on page load

jquery - Google map v3 - 更新拖动标记

javascript - 计算鼠标和 DOM 元素边缘之间的距离

javascript - 从完整日历中获取点击日期