我正在使用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>");
}
}
});
由于anchors title属性保留为空白,因此效果很好。我使用title='" + data.data[i].caption.text + "'
将Instagram标题作为主题标题。在大多数情况下,这是有效的,但我经常会收到以下错误:“Uncaught TypeError:无法读取属性'text'的null”
我假设发生这种情况的原因有两个: A)根本没有标题 B)带有不能作为标题的字符的标题。
有谁知道为什么会这样,还有我如何解决这个问题?我尝试了以下但是它引发了同样的错误:
if(data.data[i].caption.text != null) {
var title = data.data[i].caption.text;
} else {
var title = "";
}
有什么想法吗?
答案 0 :(得分:3)
如果没有附加标题,Instagram不会返回该字段。只需添加另一个空检查。
if (data.data[i].caption !=null) {
if(data.data[i].caption.text != null) {
var title = data.data[i].caption.text;
}
} else {
var title = "";
}
答案 1 :(得分: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);
}