JQuery函数中的错误是什么

时间:2013-06-17 14:33:14

标签: jquery

我想通过雅虎的API获取天气。函数会一直触发html。 我在函数html之前放了alert。当它在html之前时,它会向我显示警报。 但是当它在html之后它不起作用。它显示html有错误。问题是什么?

<script type="text/javascript">
    $(document).ready(function () {
        $.simpleWeather({
            zipcode: '',
            woeid: '@Html.DisplayFor(modelItem => item.zipcode)',
            location: '',
            unit: 'c',
            success: function (weather) {
                //html = '<h2>' + weather.city + ', ' + weather.region + '</h2>';
                //html += '<img style="float:left;" width="125px" src="' + weather.image + '">';
                alert("hi");
                html += '<p>' + weather.temp + '&deg; ' + weather.units.temp + '<br /><span>' + weather.currently + '</span></p>';
                html += '<a href="' + weather.link + '">View Forecast &raquo;</a>';

                $("#weather").html(html);
            },
            error: function (error) {
                $("#weather").html('<p>' + error + '</p>');
            }
        });
    });
</script>

现在警报工作

但在此警报中不起作用:

<script type="text/javascript">
    $(document).ready(function () {
        $.simpleWeather({
            zipcode: '',
            woeid: '@Html.DisplayFor(modelItem => item.zipcode)',
            location: '',
            unit: 'c',
            success: function (weather) {
                html = '<h2>' + weather.city + ', ' + weather.region + '</h2>';
                html += '<img style="float:left;" width="125px" src="' + weather.image + '">';
                alert("hi");
                html += '<p>' + weather.temp + '&deg; ' + weather.units.temp + '<br /><span>' + weather.currently + '</span></p>';
                html += '<a href="' + weather.link + '">View Forecast &raquo;</a>';

                $("#weather").html(html);
            },
            error: function (error) {
                $("#weather").html('<p>' + error + '</p>');
            }
        });
    });
</script>

这是我的HTML代码:

<div id="weather"></div>

html有错误。请帮帮我。

4 个答案:

答案 0 :(得分:5)

您没有初始化也没有声明html,因此此行无法附加到其中:

   html += '<p>' + weather.temp + '&deg; ' + ...

您可以将html +=更改为var html =

请注意,第二个代码,即使它“有效”,仍然没有明确声明html变量(缺少var关键字),这使它成为全局。

答案 1 :(得分:0)

您需要初始化var html,例如var html = 'blah blah blah'

答案 2 :(得分:0)

您没有将邮政编码传递给简单的天气插件。

zipcode: '',

您必须传递邮政编码值。示例zipcode: '90210',

代码是

$(document).ready(function () {
        $.simpleWeather({
            zipcode: '90210',
            woeid: '@Html.DisplayFor(modelItem => item.zipcode)',
            location: '',
            unit: 'c',
            success: function (weather) {
                html = '<h2>' + weather.city + ', ' + weather.region + '</h2>';
                html += '<img style="float:left;" width="125px" src="' + weather.image + '">';
                alert("hi");
                html += '<p>' + weather.temp + '&deg; ' + weather.units.temp + '<br /><span>' + weather.currently + '</span></p>';
                html += '<a href="' + weather.link + '">View Forecast &raquo;</a>';

                $("#weather").html(html);
            },
            error: function (error) {
                $("#weather").html('<p>' + error + '</p>');
            }
        });
    });

答案 3 :(得分:0)

如何轻松地尝试weather API

这是一个 jQuery天气示例http://jsbin.com/isukam/1

如果您需要帮助,请告诉我。

披露:我拥有此API。