0

我已经尝试了一段时间来让它工作,但我找不到一个按我需要的方式工作的解决方案。

我正在使用 zepto.js,我需要做的是从提要中获取帖子列表并循环浏览它们。除了没有缩略图的帖子外,我一切正常。如果缩略图不存在,我传递文章的方式会留下一个空的 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 的方法。

我知道我可能很愚蠢,但我碰壁了。任何指针将不胜感激。

4

2 回答 2

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>";
}
于 2012-06-21T08:19:16.570 回答
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);
  })
}
于 2012-06-21T08:21:09.843 回答