我在控制台中看到错误,我不知道如何解决它,我收到错误:
无法读取未定义的属性“链接”
然而,它正好工作拉动图像和链接所以有点丢失...
任何想法?
$.ajax({
type: "GET",
dataType: "jsonp",
cache: false,
url: "https://api.instagram.com/v1/users/self/media/recent/?access_token=266454510.1677ed0.f66c5bc93aed4040a9392cdebfae5d63&count=9",
success: function(data) {
//console.log(data);
for (var i = 0; i < 10; i++) {
//console.log(data.data[i]);
$(".instagram-photos").append("<a target='_blank' href='" + data.data[i].link + "'><img src='" + data.data[i].images.low_resolution.url + "'></img></a>");
}
}
});
答案 0 :(得分:1)
因为你的error: no matching function for call to 'readPattern'
note: candidate template ignored: substitution failure[ with r = 3, c = 4 ]
template<int r, int c> void readPattern(const matrix<r,c> &pattern)
循环没有检查数组中是否存在元素。您假设for
数组中始终存在 10 元素。但是,有时候,可能会有少于10个元素,并且您的循环将失败。使循环中的条件更具动态性。
data
应该是:
for (var i = 0; i < 10; i++) {
// Code Here
}
答案 1 :(得分:0)
你应该做的是找出哪些属性未定义,以及为什么。
可能未定义的事情:
data
data.data
data.data[i].link
这也可能与你的for循环有关,为什么你认为data.data
的长度是10?
见:
for (var i = 0; i < 10; i++) {
为什么不使用
for (var i = 0; i < data.data.length; i++) {
对我来说也有点意见,你为什么要使用data.data
?这真令人困惑。
您应该使用data.item[i]
或给出第一个data
其他名称。
这不是必须的,但如果你想让其他人去&#34;喜欢&#34;那肯定是应该的。你的编码方式:)。
答案 2 :(得分:0)
这是因为只有9个link
属性。
您可以像
一样修改循环for (var i = 0; i < 9; i++)