首页 > 解决方案 > 为什么我的 for 循环不在我的 getJSON 请求中执行?

问题描述

我不确定这是否可能是由于异步执行。我的 JavaScript 知识非常有限,所以我无法确定为什么不起作用,但在另一个网页上运行完全相同的结构。我还确保了 get 请求找到了数据。

$.getJSON(products_url, function(data) {
//    console.log(data) //  has length 2
    for (var i=0; i <= data.length; i++) {
        console.log(data[i]);
    }
});

console.log(data) 返回:

{data: Array(2)}
data: Array(2)
0: {desc: "Apples are delicious", images: "https://i5.walmartimages.com/asr/2b4a8c7c-941f-457…809c.jpeg?odnHeight=450&odnWidth=450&odnBg=FFFFFF"}
1: {desc: "Oranges are delicious", images: ""}
length: 2
__proto__: Array(0)
__proto__: Object

更新:解决方案

对于可能遇到此问题的其他人,Vlaz 的回答突出了我的错误。数据是请求返回的对象。要访问数据本身,需要 data.data。因此,正确的代码如下所示:

$.getJSON(products_url, function(data) {
//    console.log(data);
    for (var i=0; i <= data.data.length; i++) {
        console.log(data.data[i]);
    }
})

标签: javascriptjquery

解决方案


推荐阅读