令人讨厌的是,FlickrAPI以两种不同的方式提供照片的标题和描述。我无法从Flickr获取图像的描述,并想知道是否可以突出显示我脚本中的错误。
for (var i = 0; i < photos.photo.length; i++) {
var descPhoto = "https://api.flickr.com/services/rest/?method=flickr.photos.getInfo&api_key="+API_KEY+"&photo_id="+photos.photo[i].id+"&format=json&nojsoncallback=1";
var descArr = [];
$.getJSON(descPhoto, function(data) {
var value = data.photo.description._content;
descArr.push(value);
});
link = 'https://farm' + photos.photo[i].farm + '.static.flickr.com/' + photos.photo[i].server + '/' + photos.photo[i].id + '_' + photos.photo[i].secret + '_';
title = this._htmlEscape( photos.photo[i].title );
var lightbox = "lightbox";
listItems +=
'<li ' + 'class="' + liClassNoDots + '">' +
'<a href="' + link + self.options.imageSize + '.jpg" title="' + title + '" class="' + aClassNoDots + '" target="_blank" data-lightbox="' + lightbox + '">' +
<img alt="' + title + '" src="' + link + self.options.thumbnailSize +'.jpg"/>' +
'<div class="hover-box">' +
'<p>' + descArr[i] + '</p>' +
'<button class="box-button view">View larger</button>' +
'<button class="box-button request">Request</button>' +
'</div>';
'</a>' +
'</li>';
}
获取标题很好,我已经通过API字符串调用进行了检查,并且它们在浏览器的地址栏中工作。
我已使用console.log()
并正确打印出阵列,并且我正在获取说明。但是,在每个<p>
标记中,脚本在每个实例中都返回undefined
。
但是,如果我通过调试器运行脚本,则会使用描述填充parapgraph标记。有人可以帮忙吗?!
答案 0 :(得分:0)
我认为问题出现在以下代码::
中..
$.getJSON(description, function(desc) {
value = desc.photo[ i ].description._content;
});
service url返回photo
个对象,而您正在使用photo
数组,请更改为:
..
$.getJSON(description, function(desc) {
value = desc.photo.description._content;
console.log( value );
});