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

Retrieve Flickr photo title AND description using jQuery

本文关键字:标题 描述 照片 Flickr jQuery 检索 使用      更新时间:2023-09-26

令人恼火的是,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

然而,如果我通过调试器运行脚本,段落标记将填充描述。有人能帮忙吗?!

我认为问题在以下代码::

..
$.getJSON(description, function(desc) {
    value = desc.photo[ i ].description._content;                          
});

服务url返回photo对象,而您正在使用photo数组,更改为:

..
$.getJSON(description, function(desc) {
    value = desc.photo.description._content;
    console.log( value );                     
});