0

我正在使用 ajax 从 instagram 中提取照片。下面是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 标题作为锚标题。在大多数情况下,这是可行的,但我经常收到以下错误:“未捕获的 TypeError:无法读取 null 的属性 'text'”

我假设这是由于以下两个原因之一发生的:A) 根本没有标题 B) 带有不能用作标题的字符的标题。

有谁知道为什么会这样,以及我该如何解决这个问题?我尝试了以下但它抛出了同样的错误:

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

有任何想法吗?

4

2 回答 2

2

如果没有附加标题,Instagram 不会返回该字段。只需添加另一个空检查。

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 回答
1
for (x in data.data) {
    var title_text = '';

    if (data.data[x].caption != null) {
        if (data.data[x].caption.text != null) {
            title_text = data.data[x].caption.text;
        }
    } else {
        title_text = "";
    }

    $("#instagram").append("<a target="_blank" href="' + data.data[x].link + '">" + title_text);
}
于 2018-02-13T00:28:53.677 回答