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をループしない方法や、1つのliに複数のループを渡さない方法が見つからないようです。

私はおそらく愚かだと知っていますが、壁にぶつかりました。どんなポインタでも大歓迎です。

4

2 に答える 2

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 に答える
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 に答える