如何通过for循环

时间:2015-07-22 11:09:32

标签: javascript jquery json api asp.net-web-api

我正在为我的网站制作本地天气小工具... 我已使用OpenWeather Api成功显示数据 因为我没有足够的jquery / javascript经验,所以我很难在10天内加载数据...... 我怎么能这样做,请一些帮助....任何形式的帮助或参考将不胜感激...

Html&脚本

<div id="fatehjang"></div>

    <script type="text/javascript">
            function getWeather(coords, callback) {
                var url = 'http://api.openweathermap.org/data/2.5/forecast/daily?lat=33.568109&lon=72.642767&cnt=7';
                $.ajax({
                    dataType: "jsonp",
                    url: url,
                    jsonCallback: 'jsonp',
                    data: { lat: coords[0], lon: coords[1] },
                    cache: false,
                    success: function (data) {
                        callback(data);
                    }
                });
            }
            $(document).ready(function () {
                var teams;
                $.getJSON("http://api.openweathermap.org/data/2.5/forecast/daily?lat=33.568109&lon=72.642767&cnt=7", function (json) {
                    //do some thing with json  or assign global variable to incoming json.
                    teams = json;
                });
                $(window).load(function () {
                    for (var team in teams) {
                        var obj = teams[team];
                        (function (team) {
                            coords = [team.Lat, team.Long]
                            getWeather(coords, function (data) {
                                var html = [];
                                html.push('<h2 class="heading-md">')
                                html.push('Maximum Humidity: ', data.main.humidity, ', ');
                                html.push('</h2>')
                                $("#fatehjang").replaceWith(html.join('')).css("background-color", "white");
                            });
                        }(obj));
                    }
                });
            });

        </script>

**Html**

感谢您的时间

1 个答案:

答案 0 :(得分:1)

变化

                teams = json;
            });
            $(window).load(function () {
                for (var team in teams) {

                teams = json;
                for (var team in teams) {

上面的更改只是执行&#34;显示&#34;数据作为&#34;成功的一部分&#34;打回来。由于getJSON是异步的,唯一安全的地方就是成功回调的一部分 - 我见过的人(我和他们一起工作)&#34;假的&#34;它与setTimeouts等等,并且他们认为他们已经钉了它,直到服务器需要额外的秒来响应 - 然后所有的地狱都松了:p