【发布时间】:2012-01-07 10:52:04
【问题描述】:
我想在处理完所有元素的 AJAX 请求后处理结果。但是,我的 test 变量没有提醒正确的值。我该怎么做?
var test = 0;
$('#div :input').each(function() {
var loadUrl = "path_to/ajax.php?label="+value;
$.ajax({
type: "GET",
url: loadUrl,
success: function(msg) {
if(msg == 1) {
test++;
}
else if(msg == 2) {
test++;
}
}
});
});
alert(test);
【问题讨论】:
-
那是因为那些 AJAX 调用是异步的,但
alert()会立即运行。 -
您是否尝试将
alert(test);放在success:中? -
是的,但我想在处理完所有元素后处理结果
-
像
test一样记录所有结果,当它等于$('#div :input').length时,运行该代码/函数。此外,使用$.data()代替全局变量是一种更好的做法。