2012-06-06 186 views
0

語法問題在這裏,因爲代碼工作正常。 我有一個for循環和一個內聯函數,必須在其中運行(aQuery回調)。Javascript語法:For循環中的函數

for (i=1;i <= 5;i++) 
      { 
      twitter[i] = $(this).find('twitter' + i).text(); 
      //$('<div class="twitter[i]"></div>').html(twitter[i]).appendTo('#link_'+i); 
      $('.twitter[i]').html(twitter[i]).appendTo('#link_'+i); 

      // grab from twitter 
      $.getJSON('http://api.twitter.com/1/users/show.json?screen_name='+twitter[i]+'&callback=?', 

      function (data)  
        { 
          for (j=1;j <= 5; j++)  { 
          twit_count[j] = data['followers_count'].toString(); 
          twit_count[j] = add_commas(twit_count[j]); 
          $('#twitter_count'+j).html(twit_count[j]); 
          } 
        }); 
      } 

如果我= 3我想j是在該函數內相同的值。

問題是j循環對每個i循環運行五次。

傳遞i作爲自變量

function (data, i) 

不起作用,一些方向將高度讚賞。

感謝,

+0

如果I = 1的值,要j循環運行一次,兩次,對於i = 2,三次對於i = 3 ....那是你需要的嗎? –

+0

是的,它是^^我該怎麼做? –

+0

然後,用(j = 1; j <= 5; j ++)代替(j = 1; j <= i; j ++) –

回答

0

不是100%確定你想要什麼,但如果你想有回調函數只是做一組計數器,它不應該有它的一個循環。

要讓回調函數中的j值與i具有相同的值,必須編寫一個函數來返回回調函數,並將所需的值作爲參數傳遞給外部函數。

$.getJSON(url, (function(j) { 
     return function(data) { 
      twit_count[j] = data['followers_count'].toString(); 
      twit_count[j] = add_commas(twit_count[j]); 
     $('#twitter_count'+j).html(twit_count[j]); 
     } 
    })(i)) 

查看我的回答here瞭解更多解釋。

0

嗨,大家只是回答我自己的問題。

我想要每頁的Facebook/Twitter關注者列表。

var f_page = ["TheHouseofMarley, Another FB ID, Another FB ID, Another FB ID"]; 

    for(var i=0; i < 1; i++) 
        { 
         retrieveData(f_page[i]); 
        } 

    function retrieveData(teamName) { 

    var baseURL = 'http://graph.facebook.com/'; 
    $.getJSON(baseURL+teamName+"&callback=?", function(data) { 
    $('#FBlikes').append(teamname ":" data.likes) 
     }); 
    }; 

然後在<體>

<span id='FBlikes'></span>