for (var i = 0; i < 3; i++){
$.ajax({
url: "ajax.php",
success: function(data){
alert(i);
}
});
}
我需要一个解决方案来获得“0”,“1”和“2”的警报。在这段时间当然我会看到3个带有“3”的警报。jQuery。在周期内从ajax获取var
for (var i = 0; i < 3; i++){
$.ajax({
url: "ajax.php",
success: function(data){
alert(i);
}
});
}
我需要一个解决方案来获得“0”,“1”和“2”的警报。在这段时间当然我会看到3个带有“3”的警报。jQuery。在周期内从ajax获取var
可以使用匿名函数来包裹代码来创建一个封闭,将保持该值,直到异步响应到达:
for (var i = 0; i < 3; i++){
(function(i){
$.ajax({
url: "ajax.php",
success: function(data){
alert(i);
}
});
})(i);
}
同@jakeclarkson解决方案 - 它的工作原理。谢谢。还有+1 – Eddie 2012-02-24 13:41:44
I值传递给ajax.php页面作为参数。 ajax.php页面必须将我返回到调用页面。所以让ajax.php页面返回i。 您可以使用json对象或平凡的管道分隔字符串来存储ajax.php的返回值。
for (var i = 0; i < 3; i++){
$.ajax({
data: {par: i},
url: "ajax.php",
success: function(data){
//data is a pipe-separated string
var cnt = data.split("|")[0];
alert(cnt);
}
});
}
尝试将值'i'保存到循环内的临时变量(例如'j')中,并在'success'处理程序中使用。 – millimoose 2012-02-24 13:34:12
[JavaScript中的回调函数中的变量总是得到循环中的最后一个值的可能的重复?](http://stackoverflow.com/questions/2520587/variable-in-javascript-callback-functions-always-gets-last-value-in -loop) – Quentin 2012-02-24 13:36:10
我试过了 - 它不起作用 – Eddie 2012-02-24 13:36:37