Javascript 语法:For 循环中的函数

Javascript syntax: Function insideof a For loop

本文关键字:函数 循环 For 语法 Javascript      更新时间:2023-09-26

这里的语法问题,因为代码工作正常。我有一个 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 循环运行五次。

传递 i 作为参数

 function (data, i)

行不通,一些方向将不胜感激。

谢谢

不是 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) )

有关更多解释,请参阅我的答案。

大家好,只是为了回答我自己的问题。

我想要每页的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>