解释如何使用Jquery从twitter搜索API提取数据并在HTML上打印
Explanation for extracting data from twitter search API and printing on the HTML using Jquery
我是javascript和jquery的新手。我正在制作一个web应用程序,需要从推特的数据。这是我的两个密码。第一个是朋友送的,另一个是我自己的版本。现在我的版本不起作用了。下面是我的几个问题:
1)在版本1中,为什么我们将e传递给函数?2)为什么我们在dataType中使用"jsonp"?3)是什么让我的代码不能工作?
和
是什么使代码版本1工作?
工作版本
$('#input').submit(function(e){
e.preventDefault();
e.stopPropagation();
var hashtag = $(this).find('input[name="hashtag"]').val();
var twitterapi = "http://search.twitter.com/search.json?";
jQuery.ajax({
type: "GET",
url: twitterapi,
data: {
"q": hashtag,
"rpp": 1000
},
dataType: 'jsonp'
}).done(function (response) {
var results = response.results;
for (var i = 0; i < results.length; i++) {
$("#tweet").append("<p class='tweet'>" +
"<span class='username'>" +
results[i].from_user +
"</span> <span class='tweet_content'> " +
results[i].text + "</span></p>");
}
});
我的版本
var hashtag = $(this).find('input[name="hashtag"]').val();
var twitterapi = "http://search.twitter.com/search.json?";
var tweetspresent = results.length;
jQuery.ajax(
{
type: "GET",
url: twitterapi ,
data: {"q": hashtag,"rpp":1000},
dataType: 'jsonp',
});
}).done(function(results)
{
for(i=0;i<tweetspresent;i++)
{
$("#tweet").html("<p> Name: " + results[i].from_user + " - " + results[i].text + "</p>");
}
});
});
1)"e"代表事件,在这种情况下,它是传递给函数的submit事件对象。你可以在这里找到更多关于活动的信息。下面是对例如preventDefault方法所做的事情的更多解释。
2)当你从一个不同的域使用ajax调用获取数据(例如your-website.com执行javascript从twitter.com获取数据),我们说的"跨域"请求。出于安全考虑,这是不允许的。有几种方法可以解决这个问题。其中之一是jsonp。对于具有本机支持CORS的新浏览器,您不再需要使用jsonp类型了。
3)你不说什么不工作,所以先做一点调试(在现代浏览器中)使用console.log(变量),检查你的完成回调是否被调用,如果是,记录响应,看看是什么结构(或更好地检查twitter api)。
编辑你不需要向done
函数传递任何东西,那只取决于你的需要。执行jQuery时。ajax函数,它会做任何你告诉它做什么,当它完成它返回对象(s),你可以进一步使用。在您的示例中,您需要一种方法来访问从Twitter返回的数据。我强烈建议您阅读更多关于jQuery ajax的内容。
- 如何将json数据显示为html
- 使用html中的外部javascript进行数据验证
- 无法将数据从firebase获取到我的html页面
- JS验证ajax返回的html中的表单数据
- 将HTML表格导出到excel时,无法将数据加载到excel文件中
- 编辑HTML表的源数据
- PHP:显示sqlite数据库中的html格式数据,使用tinymce保存
- 在页面呈现之前更改HTML数据
- 如何放置'选择'基于angularJS中数据的html选项
- 有没有一种方法可以仅使用HTML/CSS来隐藏基于特定值的数据单元格
- AngularJS-需要在index.html页面中访问来自服务的数据
- AngularJS加载JSON数据,然后从中解析/加载HTML
- tu如何将id放在填充了json数据的html表td上
- 在HTML页面上显示node.js服务器中的数据
- 函数jquery.html()不提供数据属性集值
- 从远程站点获取数据 - HTML 表
- 如何保存和访问复选框数据 HTML
- 在下拉列表中显示保存的数据 - html 选择标签
- 避免使用jQuery显示的数据.html在页面重新加载后丢失
- 使用javascript根据元素的数据html将类附加到元素中