使用jQuery检索Flickr照片标题和描述

时间:2015-07-07 10:22:44

标签: javascript jquery flickr

令人讨厌的是,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标记。有人可以帮忙吗?!

1 个答案:

答案 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 );                     
});