写真の URL を解析し、lazyload プラグインを使用しているため、写真の URL がどこにあるかについて 3 つの異なる可能性を持つ JSON フィードがあります。
たとえば、写真がない場合は未定義です (以下を参照してください。その行を単独でテストしたところ、機能します)。写真が 1 枚の場合は、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();