当我运行在循环Ajax请求,成功AJAX不显示返回的数据... 这里是代码:jQuery的Ajax请求确实在HTML元素不显示数据
url = ["../siteAdmin/statistics/queriesAjax.php", "../siteAdmin/statistics/geographyAjax.php"];
tabContainerId = ['tabs-2', 'tabs-3'];
for(var i=0, len=url.length; i < len; i++){
console.log(tabContainerId[i]);
jQuery("#"+tabContainerId[i]).html('');
jQuery.ajax({
type:"GET",
url:url[i],
data:{ from:from, to:to },
success: function (msg) {
jQuery("#"+tabContainerId[i]).html(msg);
},
error: function (msg) {
showError("Error occurred.", tabContainerId[i]);
}
});
}
在HTML元素我只看到loading.gif。 显示浏览器控制台中ajax成功的Console.log(msg)。但在HTML元素中 - 没有。 如果我设置var i = 0或var i = 1数据显示。 我在哪里犯了一个错误?
+0
这是一个范围界定问题。您需要在这种情况下使用闭包 –
+0
请您详细解释一下吗? –
+1
Ajax是异步的权利..所以当for循环迭代的时候,大多数成功函数还没有被调用。所以我的当前值将是1(url数组的长度)..当我指向相同的内存位置...当你点击成功功能都将指向相同的位置..所以它将永远是1 –