异步循环Jquery

异步循环Jquery,jquery,Jquery,我有一个代码,我想以异步方式执行它,下面是我的代码片段 var arr = [1,2,7,4,5]; for(var i in arr) { var res = ""; var count =i; $("#container").append("<div id='div_"+count+"'></div>"); $.get( qlink, function(retdata) { res= retdata.value; }); $("#div_"+count).html(r

我有一个代码,我想以异步方式执行它,下面是我的代码片段

var arr = [1,2,7,4,5];
for(var i in arr)
{
var res = "";
var count =i;
$("#container").append("<div id='div_"+count+"'></div>");
$.get( qlink, function(retdata) {
res= retdata.value;
});
$("#div_"+count).html(res);  // Last line
}
var-arr=[1,2,7,4,5];
用于(arr中的var i)
{
var res=“”;
var计数=i;
$(“#容器”)。附加(“”);
$.get(qlink,函数(retdata){
res=retdata.value;
});
$(“#div"+count).html(res);//最后一行
}
一切都执行得很好,但这里的问题是在“最后一行”中,它所做的是每次迭代都将count的值取为5。有什么建议吗?我希望执行是并行的,并且并行地希望变量范围仅限于该迭代。

var arr=[1,2,7,4,5];
var arr = [1,2,7,4,5];
for(var i in arr)
{
 var res = "";
 var count =i;
 $("#container").append("<div id='div_"+count+"'></div>");
 $.ajax({
        url:"yoururl",
        sucess: function(result){
                 $("#div_"+count).html(result.value);
                }
       });
}
用于(arr中的var i) { var res=“”; var计数=i; $(“#容器”)。附加(“”); $.ajax({ url:“你的url”, 成功:功能(结果){ $(“#div#”+count).html(result.value); } }); }
将最后一行移到“get”调用的处理函数中:

var-arr=[1,2,7,4,5];
用于(arr中的var i)
{
var res=“”;
var计数=i;
$(“#容器”)。附加(“”);
$.get(qlink,函数(retdata){
res=retdata.value;
$(“#div"+count).html(res);
});
}

基本问题是和
res

var arr = [1, 2, 7, 4, 5];
$.each(arr, function (i, val) {
    var $ct = $("<div id='div_" + val + "'></div>").appendTo("#container");
    $.get(qlink, function (retdata) {
        $ct.html(retdata.value);
    });
})
var-arr=[1,2,7,4,5];
$。每个(arr,函数(i,val){
var$ct=$(“”)。附加到(“#容器”);
$.get(qlink,函数(retdata){
$ct.html(retdata.value);
});
})

真正的问题是,为什么要对同一个URL执行五个ajax请求,而不是一次返回所有内容?adeneo这不是我正在运行的实际代码,只是问题的一个示例,它不是我一次又一次调用的同一个URL,当然它包含在另一个数组中。美元的计数是多少(“#div#uu”+count).html(res);那么?很可能永远都是5。
var arr = [1, 2, 7, 4, 5];
$.each(arr, function (i, val) {
    var $ct = $("<div id='div_" + val + "'></div>").appendTo("#container");
    $.get(qlink, function (retdata) {
        $ct.html(retdata.value);
    });
})