【发布时间】:2015-11-23 04:37:22
【问题描述】:
我对编写代码和使用 API 有点陌生。我不完全确定为什么我的程序没有按我希望的方式运行。
我想要做的是在控制台中提供搜索结果,然后才能继续我希望它做的下一步;但是,我不认为正在搜索任何内容。
据此:https://developers.google.com/youtube/v3/docs/search/list#http-request,唯一需要的参数是“part”,所以我认为我做对了吗?可能不是,因为据我所知,当我尝试搜索一个词时,没有搜索任何内容。 这是我的代码:
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<section>
<form id="search-term">
<p>Enter Name:<br/>
<input id="query" type="text" name="Name"/><br/>
<hr/>
<input type="button" value="Enter here"/>
</p>
<div id="search-results">
</div>
</form>
</section>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
</body>
</html>
JavaScript:
$(document).ready(function(){
$('#search-term').submit(function(event){
event.preventDefault();
var searchTerm = $('#query').val();
getRequest(searchTerm);
});
function getRequest(searchTerm){
var params = {
"q": "searchTerm",
"part": 'snippet',
"type": 'video',
"key": 'I was advised to keep my key private, so I edited this part out'
}
url = 'https://www.googleapis.com/youtube/v3/search';
$.getJSON(url, params, function(data){
showResults(data.items);
})
}
function showResults(results){
var html = "";
$.each(results, function(index,value){
html += '<p>' + value.snippet.thumbnails.high.url + '</p>' + '<p>' + 'https://www.youtube.com/watch?v=' + value.id.videoId + '</p>' + '<hr/>';
console.log(value.snippet.thumbnails.high.url);
console.log(value);
})
$('#search-results').html(html);
}
})
【问题讨论】:
-
它向您的控制台输出了什么?
-
出于某种原因,它只是说“未定义”。我将在输入框(即搜索框)中输入一些内容,然后按“回车”键。控制台只是说“未定义”。
-
你能在上面加上
console.log(data);,看看我们有什么收获吗? :) -
有效!谢谢!你知道为什么我从 console.log(data) 而不是 console.log(data.search) 得到一些东西吗?这可能是一个愚蠢的问题,但我还是新手 :)
标签: javascript youtube-data-api