1

さまざまな郵便番号からツイートを取得しようとしています。これを行うために、各郵便番号に緯度と経度の値を使用しています。これまでのところ、郵便番号ごとに3つのツイートを取得したいと思います(私は2つの郵便番号を持っています)が、1つの郵便番号に対してのみ機能します。任意の提案をいただければ幸いです。前もって感謝します!

これが私のコードです:

<!DOCTYPE HTML>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
        <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

        <script>
            var lat=[41.9716,42.0411];
            var lng=[-87.7026,-87.6900];
            $(document).ready(function() {
            for(var i=1; i<2; i++)
            {
                $.getJSON('http://search.twitter.com/search.json?q=business&geocode='+lat[i]+','+lng[i]+',5mi&lang=en&callback=?', function(data) {
                var data = data.results;
                var html = "";  
                for(var j=0; j<3;j++){
                    html += "<div style='width:600px;border:solid thin blue'><img src='"+data[j].profile_image_url+"'/><a href='http://twitter.com/" + data[j].from_user + "'>@"+ data[j].from_user + "</a>: " + data[j].text + "</div>";
            } 
            $('.content'+i).html(html);
            }); }
            });
    </script>
</head>

<body>
    <div class="content1"></div>
    <div class="content2"></div>
</body>

4

1 に答える 1

1

コードに2つの問題が見つかりました:

1)2回繰り返す場合、for関数は次のようになります。for (var i = 0; i < 2; i++)

$.getJSON2)呼び出される関数は非同期で実行されることを考慮する必要があります 。そのため、その関数が呼び出されると、はすでに終了しているため、その関数内でその目的で値をfor使用することはできません。i

したがって、コード内のこれら2つのことを修正した後、必要なものを取得できるはずです。次のようなもので試してください:

<!DOCTYPE HTML>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
        <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

        <script>
            var lat = [41.9716, 42.0411];
            var lng = [-87.7026, -87.6900];
            var count = 1;
            $(document).ready(function () {
                for (var i = 0; i < 2; i++) {
                    $.getJSON('http://search.twitter.com/search.json?q=business&geocode=' + lat[i] + ',' + lng[i] + ',5mi&lang=en&callback=?', function (data) {                        
                        var data = data.results;
                        var html = "";
                        for (var j = 0; j < 3; j++) {
                            html += "<div style='width:600px;border:solid thin blue'><img src='" + data[j].profile_image_url + "'/><a href='http://twitter.com/" + data[j].from_user + "'>@" + data[j].from_user + "</a>: " + data[j].text + "</div>";
                        }
                        $('.content' + count++).html(html);
                    });
                }
            });
    </script>
</head>

<body>
    <div class="content1"></div>
    <div class="content2"></div>
</body>
</html>
于 2012-11-23T21:16:39.243 に答える