2012-06-21 7 views
0

Я пытался какое-то время заставить это работать, но я не могу найти решение, которое работает так, как мне нужно.Проверьте, присутствует ли значение JSON zepto

Я использую 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) 
    }) 
} 

Я пробовал другие методы, но я не могу показаться, чтобы найти тот, который не делает петлю ЛУ или пройти несколько циклов в один ли.

Я знаю, что я, вероятно, глуп, но я ударил стену. Любые указатели будут высоко оценены.

ответ

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. Я знал, что это будет просто. Я думал о том, что если бы вокруг поля. Не думал, что просто одетый вокруг цикла статей. – 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

Смежные вопросы