考虑一个javascript代码段,它使用 JSON来获取Twitter粉丝计数。问题是我得到以下内容:'undefined 2146粉丝'。此脚本适用于有关4个Twitter帐户的printng数据。代码如下:
<div id='twitter'>
<script type='text/javascript'>
$(document).ready(function(){
var i;
twitterusername = ['Sinbg','followfog','miniclip','vgames'];
for(i=0; i<4; i++){
$.getJSON('http://twitter.com/users/' + twitterusername[i] +
'.json?callback=?', function(data){
$('#twitter').html('' + twitterusername[i] + ' ' +
data.followers_count + ' Followers' + '<br/>');
});
}
});
</script>
</div>
答案 0 :(得分:2)
调用$('#twitter').html(...)
部分后,您的for
循环已结束,i
的值为4
。因此,twitterusername[4]
为undefined
。
要修复,请按以下方式构建循环:
for( i=0; i<4; i++) {
(function(i) {
// your loop stuff here
})(i);
}
这为i
创建了一个新的闭包,有效地“锚定”了它的价值。
答案 1 :(得分:1)
除了kolink所说的,你正在覆盖twitter div的内容,所以你只能得到最后的输出。
以下全部修复:http://jsfiddle.net/fEfNr/