0

コードが正常に動作するため、ここで構文の問題が発生します。for ループとその中で実行する必要があるインライン関数 (aQuery コールバック) があります。

  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]);
                          }
                    }); 
             }

i=3 の場合、関数内で j を同じ値にする必要があります。

問題は、j ループが i ループごとに 5 回実行されることです。

i を引数として渡す

 function (data, i)

うまくいかない、いくつかの方向性が高く評価されます。

ありがとう、

4

2 に答える 2

0

何が必要かは 100% わかりませんが、コールバック関数で 1 セットのカウンターだけを実行する場合は、ループを含めないでください。

コールバック内の 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) )

詳細については、こちらの回答を参照してください。

于 2012-06-06T09:53:48.890 に答える
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)
        });
    };

次に < body > で

<span id='FBlikes'></span> 
于 2012-06-27T11:46:57.230 に答える