2016-12-13 1 views
0

Я использую jQuery для синтаксического анализа XML-канала для создания настраиваемого RSS-канала.Как изменить jQuery .each(), так что я получаю только N элементов, а не все из них?

Вот что у меня есть:

 var $XML = $(data); 
     $XML.find("item").each(function() { 
      var $this = $(this), 
       item = { 
        title: $this.find("title").text(), 
        link: $this.find("link").text(), 
        description: $this.find("description").text(), 
        pubDate: $this.find("pubDate").text(), 
        author: $this.find("author").text() 
       }; 
      $('#TestFeed').append($('<h2/>').text(item.title)); 
      $('#TestFeed').append($('<a/>').text(item.link)); 
      $('#TestFeed').append($('<p/>').text(item.description)); 
      $('#TestFeed').append($('<p/>').text(item.pubDate)); 
      $('#TestFeed').append($('<p/>').text(item.author)); 
     }); 

Мой вопрос, как я могу изменить это, в частности .each(), так что я только получить последние 3 пунктов, и не все из них?

+0

«Последние 3 элемента» в начале или конце '$ XML'? – guest271314

+0

@ guest271314 Я только что понял это, см. Мой ответ –

+0

См. [Что такое канонический вопрос/ответ и какова их цель?] (Http://meta.stackoverflow.com/questions/291992/what-is-a -канонический-вопрос-ответ-и-что-это-их назначение). Является ли данный вопрос предполагаемым каноническим вопросом/ответом о том, как остановить jQuery '.each()' от продолжения итерации элементов, если условие выполнено или не выполнено? – guest271314

ответ

0

Извините, что я понял это, прочитав this.

Я изменил мой существующий код для этого:

<script> 
    $.get("https://test.com/feed/", function (data) { 
     var $XML = $(data); 
     $XML.find("item").each(function (index) { 
      var $this = $(this), 
       item = { 
        title: $this.find("title").text(), 
        link: $this.find("link").text(), 
        description: $this.find("description").text(), 
        pubDate: $this.find("pubDate").text(), 
        author: $this.find("author").text(), 
       }; 
      $('#TestFeed').append($('<h2/>').text(item.title)); 
      $('#TestFeed').append($('<a href="' + item.link + '"/>').text(item.link)); 
      $('#TestFeed').append($('<br/>')); 
      $('#TestFeed').append($('<p/>').text(item.description)); 
      $('#TestFeed').append($('<br/>')); 
      $('#TestFeed').append($('<p/>').text(item.pubDate)); 
      $('#TestFeed').append($('<br/>')); 
      $('#TestFeed').append($('<p/>').text(item.author)); 

      if (index >= 2) 
       return false; 
     }); 
    }); 
</script> 

Надеется, что это помогает кто-то в будущем.

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