javascript - For 循环在 Ajax 调用中重复返回相同的值

标签 javascript variables jquery for-loop

<分区>

我正在尝试使用 for 循环循环访问一组 URL 并将它们用于 ajax 调用。在 ajax 调用之外,i 正确更改值,但是当我尝试从调用内部访问它时,它总是返回 2。它正确地循环但具有相同的值,而不是循环遍历 0、1 等。

var i = 0;
for(i = 0; i <= 1; ++i) {
    console.log("Value outside of call = " + i);
    $.ajax({
        url : urls[i],
        dataType : 'jsonp',
        timeout : 3000,
        count : 0,
        success : function(data) {
            console.log("Value inside of call = " + i);
            shotInfo[i] = data;
        },
        error : function() {
        }
    })
}

我也尝试过使用 while 循环,但它具有相同的效果。

最佳答案

你只有一个变量i。当回调触发时,它的最终值为 2

制作a closure .

关于javascript - For 循环在 Ajax 调用中重复返回相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8657490/

相关文章:

python - 如何应用参数/for循环

c - 为什么变量在 C 中以随机值开头

javascript - JQuery Mobile 和 Firefox 不能一起玩?

当要替换两个以上相同的单词时,Javascript .replace 不适用于 .match 单词

javascript - 用动态空白比较两个字符串的最快方法?

javascript - 我如何循环遍历数组并在 jquery 中动态创建项目

javascript - 如何调用函数并传入变量?

javascript - 删除 <br> 以及相应的 <span>

javascript - 提取网页的调色板

javascript - Highcharts - 从顶部开始的位置柱形图