为什么我的YouTube代码无法与所有播放列表配合使用?

时间:2015-01-02 03:48:54

标签: javascript jquery json

jsfiddle playlist first

明矾歌曲播放列表完美有效,但遗憾的是相同的代码不适用于其他播放列表ID

jsfiddle playlist second

医疗动画播放列表不起作用



var playListURL = 'http://gdata.youtube.com/feeds/api/playlists/B2A4E1367126848D?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 vid = item.media$group.yt$videoid.$t;
    var url = videoURL + videoID;
    var vidtitle = item.title.$t;
    var vidviews = item.yt$statistics.viewCount;
    var content = item.media$group.media$description.$t;
    var thumb = "http://img.youtube.com/vi/" + videoID + "/default.jpg";
    list_data += '<a href=' + url + '><table width="100%"><tbody><tr><td width="110"><img height="150" width="150" alt=' + feedTitle + ' src=' + thumb + ' style="padding: 5px;"></td><td><h5><a name="p4">' + vidtitle + '</a></h5><p><b>Views:-</b> <b>' + vidviews + '</b> </p><section class="toggle active"><label>Case Study <i class="icon icon-youtube-play"></i></label><div class="toggle-content"><p>' + content + '</p></p></div></section></td></tr></tbody></table></a><hr/>';

  });
  $(list_data).appendTo(".cont");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="cont">
</ul>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

原因是视频没有观看次数,因此某些视频未定义item.yt$statistics。在访问viewCount之前删除这些变量或检查未定义的值。

我也注意到提供的jsFiddle不包含jQuery,所以我在下面的jsFiddle中更新了它。

http://jsfiddle.net/cqp20zLc/1/