2012-06-21 143 views
0

我一直在嘗試一段時間才能使其工作,但是我找不到能夠按我需要的方式工作的解決方案。檢查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或傳遞多個環插入一個禮。

我知道我可能是愚蠢的,但我已經打了一堵牆。任何指針將不勝感激。

回答

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>"; 
} 
+0

謝謝slash197。我知道這很簡單。我在想如果圍繞field.thumb,沒有考慮只是放置文章循環。 – Bunkered

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); 
    }) 
} 
+0

感謝您的回答,我確實希望在這個場合渲染它們,但我絕對可以看到「地圖」在進一步發揮作用。 – Bunkered