2012-03-20 65 views
0

考虑一个javascript代码片段,它使用JSON来获取twitter关注者的数量。问题是,我得到以下内容:'未定义2146追随者'。该脚本用于打印关于4个Twitter帐户的数据。代码如下:PHP和JSON获得粉丝数

<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> 
+1

这有什么做用PHP ... – Brad 2012-03-20 18:03:36

回答

1

除了kolink说过的话,你会覆盖twitter div的内容,所以你只能得到最后的输出。

这里是它的所有固定:http://jsfiddle.net/fEfNr/

2

$('#twitter').html(...)部分被调用,您for循环已经结束和i值是4。因此,twitterusername[4]undefined

要修复,结构中的循环是这样的:

for(i=0; i<4; i++) { 
    (function(i) { 
     // your loop stuff here 
    })(i); 
} 

这为i一个新的闭包,有效地“固定”它的价值。

+0

试图修复它,但仍然没有工作。你能给一个JSfiddle的例子吗? – George 2012-03-20 18:09:45

+0

我不太确定为什么需要小提琴演示这个......只需在循环开始处添加'(function(i){'',}}(i);'在最后...它以什么方式“不工作”? – 2012-03-20 18:17:23

+0

它在#twitter div – George 2012-03-20 18:18:00