来自YouTube API请求的空结果
问题描述:
我不明白为什么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的链接。
答
您应更新函数以正确遍历“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调用的响应。
也许assync错误的回调或回调不解析为JSON。 –
你没有在你的'each'函数中传递数据,只需要添加'$ .each(data.items,function(data)' – Grasper
@Grasper,我试过你的解决方案,它不起作用。 –