2017-10-17 111 views
0

我不明白为什么items数组为空。有人能告诉我什么不工作吗?谢谢。来自YouTube API请求的空结果

jQuery(document).ready(function ($) { 

$('#infl-yt-label').on('click', function() { 
    //$('#infl-inp-search').attr("placeholder","YouTube input..."); 
    $('#infl-form-ig').hide(); 
    $('#infl-form-yt').show(); 
}); 

$('#infl-it-label').on('click', function() { 
    //$('#infl-inp-search').attr("placeholder","Instagram input..."); 
    $('#infl-form-yt').hide(); 
    $('#infl-form-ig').show(); 
}); 

$("#searchchannels").on("click", function() { 
    console.log($("#infl-inp-search-yt").val()); 
    $.get(
     "https://www.googleapis.com/youtube/v3/search?", 
     { 
      part:"snippet", 
      type:"channel", 
      q: encodeURIComponent($("#infl-inp-search-yt").val()).replace(/%20/g, "+"), 
      key:key 
     }, 
      function(data) 
      { 
       console.log(data.items) 
       $.each(data.items, function() 
       { 
       console.log(data.items); 
       }) 
      } 

     );//end get 
    alert(1); 
});//end 

});// end 

HTML:

 <div class="infl-sociale col-md-3 col-lg-2 text-center"> 
      <input id="infl-yt" type="radio" name="infl-sociale" value="youtube" checked> 
      <label for="infl-yt" id="infl-yt-label"><i class="fa fa-youtube-play" aria-hidden="true"></i></label> 
      <input id="infl-it" type="radio" name="infl-sociale" value="instagram"> 
      <label for="infl-it" id="infl-it-label"><i class="fa fa-instagram" aria-hidden="true"></i></label> 
     </div> 

注:我没有脚本的链接在标题中的谷歌API的链接。

+0

也许assync错误的回调或回调不解析为JSON。 –

+1

你没有在你的'each'函数中传递数据,只需要添加'$ .each(data.items,function(data)' – Grasper

+0

@Grasper,我试过你的解决方案,它不起作用。 –

回答

0

您应更新函数以正确遍历“items”集合。

function(data) 
{ 
    console.log(data.items) /* what does this log to the console? */ 
    $.each(data.items, function(item) 
    { 
     console.log(item); 
    }) 
} 

话虽这么说,什么是第一console.log(data.items)的结果呢?如果这是空的,迭代它不会做任何事情。您也可以尝试console.log(data)或查看Chrome调试网络选项卡以查看API调用的响应。