2013-06-26 104 views
1

我試圖顯示頻道的前5個視頻。不過,我正在努力將其限制在五個。限制JSON結果的數量

var playListURL = 'http://gdata.youtube.com/feeds/api/users/example/uploads?v=2&alt=json&callback=?'; 
var videoURL= 'http://www.youtube.com/watch?v='; 
$.getJSON(playListURL, function(data) { 
var list_data=""; 

    $.each(data.feed.entry, function(i, item) { 
      var feedTitle = item.title.$t; 
      var feedURL = item.link[1].href; 
      var fragments = feedURL.split("/"); 
      var videoID = fragments[fragments.length - 2]; 
      var url = videoURL + videoID; 
      var thumb = "http://img.youtube.com/vi/"+ videoID +"/default.jpg"; 
      list_data += '<a href="'+ url +'" title="'+ feedTitle +'"><div class="thumbcrop" style="background-image:url('+thumb+');background-size:cover; background-position:center;"></div></a>'; 
    }); 
$(list_data).appendTo(".videoClass"); 
}); 

我該如何做到這一點?我已經嘗試(失敗)的條款,如while(i<6)if(i<6)但他們都沒有顯示任何結果。

+0

更多的是有一個原因你沒有使用'MAX-results'在你的'playListURL'參數?有什麼我不抓住? – Puuskis

回答

3

如果您不想獲得所有結果,請不要使用每個結果,其中確實是首先遍歷所有結果。就那麼簡單。對於步驟有限的和已知的數目使用簡單的邏輯:

for (var i = 0; i <= 4; i++) { 
    var item = data.feed.entry[i]; 
    // your other stuff goes here 
} 

...或者,作爲其它狀態正確地,在第一位置ommit查詢由5,然後使用each自如。

+0

謝謝!我沒有意識到'each'會獲取每一個結果。會試試這個! – Ben

3

在您請求結果的網址中,您可以添加額外的參數&max-results=5,以便您可以限制您的Feed的數量。

所以你必須

var playListURL = 'http://.../uploads?v=2&alt=json&max-results=5&callback=?'; 

在YouTube數據API parameters