2

我正在尝试显示一个频道的前 5 个视频。但是,我正在努力将其限制在五个。

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)and之类的子句,if(i<6)但它们都没有显示任何结果。

4

2 回答 2

4

如果您不想获得所有结果,请不要使用 each,它首先遍历所有结果。就那么简单。对于有限且已知数量的步骤,使用简单的逻辑如下:

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

...或者,作为其他正确的状态,首先将您的查询省略 5,然后each自由使用。

于 2013-06-26T10:54:00.180 回答
4

在您请求结果的 url 中,您可以添加额外的参数&max-results=5,以便限制供稿的数量。

所以你会有

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

有关 youtube 数据 api参数的更多信息

于 2013-06-26T10:57:17.213 回答