【问题标题】:pushing ajax json responses in array在数组中推送 ajax json 响应
【发布时间】:2012-03-24 15:02:45
【问题描述】:

我尝试遍历一个 id 数组并为每个 id 发出 ajax 请求。随后,每个响应对象都被推送到一个数组中/到目前为止没有问题,但是,当我尝试访问数组中的响应时,问题就开始了。奇怪的是,在控制台日志中显示了响应(尽管在数组之外,见下文)但是数组对象的属性是空的/似乎我生成了一个带有一些数据的空对象/我的问题是如何我可以访问在(或不在?)数组中的对象

    var getAssoc = {
        returnProds: function (idCache) {
            var id = idCache;
            var prodData = [];
            var counter = id.length;
            $.each(id, function (i) {
                $.ajax({
                    url: "myurl.php?",
                    data: {
                        'id': id[i]
                    },
                    success: function (data) {
                        prodData[i] = data;
                            counter--;
                            if (counter === 0) console.log(prodData);
                    },                  
                })
            }); 
        }
    };

控制台日志如下所示。测试属性数量返回 0

[]
0 对象 { 数组={...}}
1 个对象 { 数组={...}}
2 对象 { 数组={...}}
3 对象 { 数组={...}}

【问题讨论】:

    标签: arrays jquery push response


    【解决方案1】:

    在你成功回调尝试解析来自你的服务器的响应:

    jQuery.parseJSON(data);
    

    【讨论】:

    • 感谢马丁的快速回复/导致数组中响应对象的探针为“null”/顺便说一下 dataType 是我在 $.ajaxSetup 中指定的 jsonp
    • console.log(data) 在您的成功功能中向您展示了什么?
    • 那将是“[], 0 Object {null}, 1 Object {null}, 2 Object {null}, 3 Object {null}”;我也很感兴趣,我是否以及如何能够访问我最初发布的控制台日志中显示的对象/因为当我单击 firebug 中的对象时,我所追求的数据会显示在日志中,可能会有一种访问它们的方法。但是,由于父对象可测试为空,我不知道该怎么做
    • 我想我明白问题所在。我试图将多维数据结构推入一维数组中。这可能不是一个好主意。我的计划是在另一部分中进一步构建数组。但似乎有效的是,当我将数据响应直接推送到 3 维数组中时。我仍然好奇的是,虽然初始数组对象是空的,但在萤火虫中我点击了与数组对象一起显示的对象(尽管显然不是它的属性),数据在那里,结构化且可访问/任何想法?
    猜你喜欢
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多