2015-09-06 97 views
0

所以,我有这个基本的“在YouTube上搜索”功能回事,问题是...我有2个GET请求,试图从两个不同的数据的URL单击缩略图时获取YouTube视频ID?

https://www.googleapis.com/youtube/v3/search 

https://www.googleapis.com/youtube/v3/videos 
获取信息

到目前为止,我已经得到了一切具有显示每个视频的长度和缩略图,标题等

但有一两件事给我的工作似乎遇到了问题做的是提醒视频是的视频ID点击。它只是提出“未定义”。我把我的代码分散了几个小时以找出可能是错误的。任何帮助?

function search() { 
    $('#results').html(''); 

    q = $('#search-input').val(); 

    $.get(
     "https://www.googleapis.com/youtube/v3/search", { 
      part: 'snippet, id', 
      q: q, 
      maxResults: 50, 
      type: 'video', 
      key: rfm 
     }, 
     function(data) { 
      for (var i = 0; i < data.items.length; i++) { 
       $.get(
        "https://www.googleapis.com/youtube/v3/videos", { 
         part: 'snippet, contentDetails', 
         key: rfm, 
         id: data.items[i].id.videoId 
        }, 
        function(video) { 
         if (video.items.length > 0) { 
          var output = getResults(video.items[0]); 

          $("#results").append(output); 
         } 
        }); 
      } 
     }); 
} 

全码: http://codepen.io/mistkaes/pen/6b6a347c7d24edee15b3491420db4ecd?editors=001

+0

一个你的问题是你有多个同名的ID。你不能。你应该改用class。 –

回答

1

我检查你的代码,你在ln79

function getResults(item) { 
    console.log(item); //This is how you should test 
    var videoID = item.id.videoId; 
    var title = item.snippet.title; 
... 

enter image description here

正如你可以看到有一个错误,没有item.id.videoId ,您应该将其更改为item.id

结果的变化:

enter image description here