2013-06-26 78 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