首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么不在数组中添加元素呢?

为什么不在数组中添加元素呢?
EN

Stack Overflow用户
提问于 2013-01-29 17:41:27
回答 2查看 80关注 0票数 0

代码:

代码语言:javascript
运行
复制
$(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>

请告诉我为什么数据不加到数组中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-29 17:45:00

post request是一种异步方法

你甚至在点击成功功能之前就会触发警报。

代码语言:javascript
运行
复制
    Asynchronous means that the script will send a request to the
 server, and continue its execution without waiting for the reply.
票数 6
EN

Stack Overflow用户

发布于 2013-01-29 17:51:36

因为您正在进行异步操作(AJAX调用),所以只有在请求完成之后,才会更新您的数据。因此,您应该在ajax调用完成后检查数组。

使用jQuery deferred objects的方法,可以很容易地实现这一点:

代码语言:javascript
运行
复制
$(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);
     });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14579794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档