我正在尝试使用javascript循环使用Blogger API获取所有博客帖子的列表。我在StackOverflow中找到了一个解决方案。但那对我不起作用。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
function handleResponse(response) {
var post_number = Object.keys(response.items).length; //number of posts
for (i=0; i<post_number; i++) {
$('#content').append('<div id="post' + (i+1) + '" class="post"><p></p></div>');
$('.post p').html(response.items[i].title);
}
}
</script>
<script src="https://www.googleapis.com/blogger/v3/blogs/5039479718685240371/posts?callback=handleResponse&key=AIzaSyDxfWmXTRnO5yIp25NvuUEBWKSa_5mqjHA"></script>
运行此代码时出现
以下错误:{
"message": "Uncaught ReferenceError: $ is not defined",
"filename": "https://stacksnippets.net/js",
"lineno": 17,
"colno": 5
}
答案 0 :(得分:1)
我对您的代码进行了一些试验和错误,您注意到的第一个问题是通过包含jQuery库来解决的。
您可以使用ajax获取数据,而不是将其包含在脚本标记中。 jQuery将为您注册并调用回调函数。
其余的工作。这是一个例子。我现在还建议你改变你的钥匙。
$.ajax("https://www.googleapis.com/blogger/v3/blogs/5039479718685240371/posts?callback=handleResponse&key=AIzaSyDxfWmXTRnO5yIp25NvuUEBWKSa_5mqjHA")
function handleResponse(response) {
//var post_number = Object.keys(response.items).length; //number of posts
for (i = 0; i < response.items.length; i++) {
var titleHtml = '<div id="post' + (i + 1) + '" class="post"><p>' + response.items[i].title + '</p></div>';
$('#content').append(titleHtml);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content"></div>