1

我正在尝试从不同的邮政编码获取推文。为此,我为每个邮政编码使用纬度和经度值。到目前为止,我想为每个邮政编码获取 3 条推文(我有 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];
            $(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++)

2)您必须考虑到被调用的函数是 $.getJSON异步运行的,因此当该函数被调用时,for将已经完成,因此您不能i在该函数中使用该值。

因此,在更正代码中的这两件事之后,您应该能够得到您想要的。尝试这样的事情:

<!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 回答