javascript - 为什么 Flickr public feed API 在通过 jQuery 访问时在显示照片结果之前返回 "undefined"?

标签 javascript jquery api

我最近开始使用 API/Ajax/JSON,并开始了一个小项目来测试我的知识。

我做了一个简单的网站,你可以在其中输入一个词到一个表单中,它会返回与该词相关的 Flickr 照片。

它工作得很好,但它总是在第一张照片之前包含一个简单的“未定义”,这会干扰第一行图片的显示。

可以在这里看到一个示例,只需搜索照片标签,您就会明白我在说什么:

http://codepen.io/anon/pen/jPExNm

这是相关的 jQuery:

$('form').submit(function (evt) {
evt.preventDefault();
// the AJAX part
var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
var query = $('#photoQuery').val();
var flickrOptions = {
  tags: query,
  format: "json"
};
function displayPhotos(data) {
  var photoHTML;
  $.each(data.items,function(i,photo) {
    photoHTML += '<div class="photo">';
    photoHTML += '<a href="' + photo.link + '" class="image">';
    photoHTML += '<img src="' + photo.media.m + '"></a></div>';
  }); // end each
  $('#photoGallery').html(photoHTML);
}
$.getJSON(flickerAPI, flickrOptions, displayPhotos);

}); // end submit

我在 Javascript 控制台中没有发现任何与此相关的错误,并且在谷歌搜索时也找不到类似的错误,所以我求助于 StackOverflow。感谢您提供的所有帮助。

最佳答案

因为

var photoHTML;

是一样的
var photoHTML = undefined;

你在做什么的基本例子

var str;
str = str + "123"; // undefined + "123" = "undefined123";

需要设置为空字符串

var photoHTML = "";

关于javascript - 为什么 Flickr public feed API 在通过 jQuery 访问时在显示照片结果之前返回 "undefined"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29907902/

相关文章:

c++ - Mongodb C++11 API errno 干扰

iPhone,JSON 响应中的特殊字符

javascript - 如何在 AngularJS 中编写基本身份验证以在表中显示来自 API 的 JSON 数据?

javascript - AngularJS ng-repeat 显示来自 Json 的二维数组

javascript - 通过Node将react-webcam的base64图像上传到cloudinary

javascript - 查找 javascript 文件中的所有字符串变量

javascript - 如何使用 jQuery Grep 过滤极度嵌套的 JSON

javascript - 当用户输入输入值时,如何使用 jquery 或 javascript 将 int 转换为 double

javascript - Ext.js 动态更新GridPanel行记录

jquery - 尝试使用 jquery 切换 header 中的 Logo 以添加/删除类