1

Javascript/JQuery 初心者なので、申し訳ありません。

.ajaxJSON オブジェクトを取得するために使用してから、以下のコードを使用してループし、フィールドをページに追加します。簡単。

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

それは機能し、出力は期待どおりで、アバターのパスが<img>タグに渡されます。

ただし、次のエラーが表示されます。

TypeError: 'undefined' はオブジェクトではありません ('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 に答える