大家。我有以下示例脚本:
<script type="text/javascript">
$(document).ready(function() {
var url = "http://api.twitter.com/1/statuses/user_timeline/codinghorror.json";
$.getJSON(url + "?callback=?", null, function(tweets) {
for(i in tweets) {
tweet = tweets[i];
$("#tweet-list").append(tweet.text + "<hr />");
}
});
});
</script>
现在我想刷新点击时从网址获取的数据。我添加了一个全局变量'content'并尝试:
<script type="text/javascript">
$(document).ready(function() {
$("body").click(function(){
var content="";
var url = "http://api.twitter.com/1/statuses/user_timeline/codinghorror.json";
$.getJSON(url + "?callback=?", null, function(tweets) {
for(i in tweets) {
tweet = tweets[i];
content+=tweet.text + "<hr />";
}
});
$("#tweet-list").html(content);
});
});
</script>
但它没有显示任何内容,然后我想也许是因为'$(“#tweet-list”)。html(内容);'在'content + = tweet.text +“
<script type="text/javascript">
$(document).ready(function() {
$("body").click(function(){
var content="";
var url = "http://api.twitter.com/1/statuses/user_timeline/codinghorror.json";
$.getJSON(url + "?callback=?", null, function(tweets,after) {
for(i in tweets) {
tweet = tweets[i];
content+=tweet.text + "<hr />";
}
after(content){$("#tweet-list").html(content);};
});
});
});
</script>
还没有工作(什么都没有),有什么帮助吗? THX。
答案 0 :(得分:2)
Ajax是异步的,因此您必须等待响应并返回一些数据才能对其执行任何操作。当您尝试使用之后的 ajax函数时,它尚未完成,并且没有内容。当有实际内容要追加并且ajax调用完成时,你必须在回调中做到这一点:
$(document).ready(function() {
$("body").click(function(){
var content="",
url = "http://api.twitter.com/1/statuses/user_timeline/codinghorror.json";
$.getJSON(url + "?callback=?", null, function(tweets,after) {
for(key in tweets) {
if (tweets.hasOwnProperty(key)) {
content+=tweets[key].text + "<hr />";
}
}
$("#tweet-list").html(content);
});
});
});
答案 1 :(得分:1)
一旦AJAX请求完成,您需要更改HTML:
$.getJSON(url + "?callback=?", null, function(tweets) {
var content = "";
for(i in tweets) {
var tweet = tweets[i];
content += tweet.text + "<hr />";
}
$("#tweet-list").html(content);
});
此外,您不需要全局变量,因此请使用var
关键字。