我有一个 JSON 提要,当我正在解析它并使用延迟加载插件时,该提要对于照片 URL 的位置可能具有三种不同的可能性。
例如,如果没有照片,则它是未定义的(见下文,我已经单独测试了该行并且它有效)。如果有一张照片,它将位于 data.value.items[i]["media:content"].url。如果有不止一张照片,它将位于 data.value.items[i]["media:content"][i].url (其中 media:content 中的 i 为 0、1、2 等,取决于存在多少张照片)。
链接和标题都很好。我只是照片有问题。
在此代码的当前版本中,我可以通过控制台登录并查看所有内容似乎都分配了占位符照片(green_app.jpg)或链接到实际照片。但是我无法让它显示在页面上。
$.getJSON('JSON URL HERE', function(data) {
console.log(data);
var output = '';
$.each(data.value.items, function(i, item){
if(typeof data.value.items[i]["media:content"] === "undefined"){
console.log("No photo");
image = 'images/green_app.jpg';
}
else if (typeof data.value.items[i]["media:content"] === "object"){
console.log("1 photo");
image = data.value.items[i]["media:content"].url;
}
else {
console.log("Multi photos");
image = data.value.items[i]["media:content"][i].url;
}
console.log(image);
output += '<ul class="media-list">';
output += '<li class="media">';
output += '<a class="pull-left" href="' + data.value.items[i].link + '">';
output += '<img data-original="' + image + '" class="media-object img-rounded lazy" height="120" width="120">';
output += '</a><div class="media-heading"><a href="' + data.value.items[i].link + '">';
output += '<h4>' + data.value.items[i].title + '</h4></a></div></li></ul>';
})
$("#mainNews").html(output);
});
$(".lazy").lazyload();