我已经尝试了一段时间才能让它发挥作用,但我找不到能够按照我需要的方式运行的解决方案。
我正在使用zepto.js,我需要做的是从feed中获取帖子列表并循环遍历它们。除了没有缩略图的帖子之外,我已经完成了所有工作。如果缩略图不存在,我传递文章的方式会留下一个空的img标记。
这是我的代码:
function get_articles(feed) {
$.getJSON(feed, function(data) {
$.each(data.articles, function(i, field) {
articles += "<li class='article' id='article-"+field.id+"'><a href='story.html? aid="+field.id+"'><img src='"+field.thumb+"' class='thumb' /><h3 class='headline'>"+field.headline+"</h3></a></li>"
})
$("ul#channel").html(articles)
})
}
我尝试了其他方法,但我似乎找不到一个不循环ul或将多个循环传递给一个li的方法。
我知道我可能是傻瓜,但我已经撞墙了。任何指针都将非常感激。
答案 0 :(得分:1)
使用简单的if..else
声明
if (field.thumb != "")
{
articles += "<li class='article' id='article-"+field.id+"'><a href='story.html? aid="+field.id+"'><img src='"+field.thumb+"' class='thumb' /><h3 class='headline'>"+field.headline+"</h3></a></li>";
}
else
{
articles += "<li class='article' id='article-"+field.id+"'><a href='story.html? aid="+field.id+"'><h3 class='headline'>"+field.headline+"</h3></a></li>";
}
答案 1 :(得分:1)
如果您不想渲染这些元素,如果他们没有缩略图,您可以使用map
过滤掉这些元素:
function get_articles(feed) {
$.getJSON(feed, function(data) {
var validArticles = $.map(data.articles, function (item, index) {
if (item.thumb) {
return item;
}
});
$.each(validArticles, function(i, field) {
articles += "<li class='article' id='article-"+field.id+"'><a href='story.html? aid="+field.id+"'><img src='"+field.thumb+"' class='thumb' /><h3 class='headline'>"+field.headline+"</h3></a></li>"
});
$("ul#channel").html(articles);
})
}