检查JSON值是否存在zepto

时间:2012-06-21 08:13:21

标签: jquery json zepto

我已经尝试了一段时间才能让它发挥作用,但我找不到能够按照我需要的方式运行的解决方案。

我正在使用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的方法。

我知道我可能是傻瓜,但我已经撞墙了。任何指针都将非常感激。

2 个答案:

答案 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);
  })
}