0

私はajaxを使ってインスタグラムから写真を引き出しています。以下は ajax 呼び出しです。

$.ajax({
    type: "GET",
    dataType: "jsonp",
    cache: false,
    url: "https://api.instagram.com/v1/media/search?lat=" + lat +"&lng=" + lng + "&distance=" + distance + "&access_token=" + accessToken + "",
    success: function(data) {

        for (var i = 0; i < 6; i++) {
             $("#instagram").append("<li><a class='group' title='' href='" + data.data[i].images.standard_resolution.url +"'><img src='" + data.data[i].images.thumbnail.url +"' /></a>");   
        }     

    }
});

これは、アンカーのタイトル属性が空白のままになっているため、うまく機能します。title='" + data.data[i].caption.text + "'Instagramのキャプションをアンカータイトルとしてプルするために使用していました。ほとんどの場合、これは機能しますが、「Uncaught TypeError: null のプロパティ 'text' を読み取れません」というエラーがよく発生します。

これは、次の 2 つの理由のいずれかで発生していると考えられます。A) キャプションがまったくない B) タイトルとして機能しない文字を含むキャプション。

なぜこれが起こっているのか、またどうすれば修正できるのか誰にもわかりますか? 次のことを試しましたが、同じエラーがスローされます。

if(data.data[i].caption.text != null) { 
     var title = data.data[i].caption.text;
} else {
     var title = "";
}

何か案は?

4

2 に答える 2

2

If there is no caption attached, Instagram does not return that field. Just add another null check.

if (data.data[i].caption !=null) {
    if(data.data[i].caption.text != null) { 
       var title = data.data[i].caption.text;
    } 
} else { 
   var title = "";
}
于 2013-07-25T01:07:47.473 に答える