代码:
$(function(){
var Name = [];
for($i=1; $i<16; $i++) {
var id = $i;
$.post("./index.php", {
record : id
}, function(data){
Name.push(data);
});
}
alert(Name);
});
数据返回结果为<a href="#"><img src="./name.jpg"></a>
请告诉我为什么数据不会添加到数组中?
答案 0 :(得分:6)
post request
是异步方法。
即使在您点击成功功能之前,您也会点击警报。
Asynchronous means that the script will send a request to the
server, and continue its execution without waiting for the reply.
答案 1 :(得分:0)
由于您正在执行异步操作(AJAX调用),因此只有在请求完成后,您的数据才会更新。所以,你应该在ajax调用完成后检查你的数组 使用jQuery deferred objects的方法,可以很容易地实现这一点:
$(function(){
var Name = [];
var requests = [];
for($i=1; $i<16; $i++) {
var id = $i;
requests.push($.post("./index.php", {
record : id
}, function(data){
Name.push(data);
}));
}
$.when.apply($,requests).done(function(){
alert(Name);
});
});