1

Javascript/JQuery noob 在这里,所以很抱歉。

.ajax用来获取 JSON 对象,然后使用下面的代码循环并将字段附加到页面。简单的。

$.each(data, function(i, item) {
    $("#div-ipos").append(
        "<img src=" + item.user.avatar_small_url + ">&nbsp;"
        + item.user.first_name 
        + "<hr /><br />"
    );
});

它可以正常工作,并且输出与预期的一样,并带有传递到<img>标签的头像路径。

但是我收到以下错误:

TypeError:“未定义”不是对象(评估“item.user.avatar_small_url”)

我需要对该变量做什么才能使其在这种情况下正常运行?

4

3 回答 3

2

console.log(data);在你之前使用$.each它来检查里面有什么。服务器响应很可能包含一个没有用户的额外数组元素。所以 JSON 可能看起来像:

[{"user":{"avatar_small_url":"foo","first_name":"bar"}},
 {"user":{"avatar_small_url":"bar","first_name":"foo"}},
 {"something_other_than_user":9000}]

看看最后一个数组元素如何没有“用户”。如果您有权访问服务器代码,您可能需要修改它以便始终有一个用户,或者您可以修改您的 Javascript 以便在用户字段不存在时提前退出,例如:if(typeof item.user == 'undefined') return;

于 2012-05-04T20:07:08.953 回答
0

听起来像 item.user 没有定义,或者 item 没有定义。你检查过物品的价值吗?我认为您期望它不是。

于 2012-05-04T20:01:00.603 回答
0

在获取使用 if 条件检查该数组中是否存在键之前,如下所示

if( key in User)
{
    User[key]
}
于 2014-12-18T07:23:09.163 回答