我想通过雅虎的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 + '° ' + weather.units.temp + '<br /><span>' + weather.currently + '</span></p>';
html += '<a href="' + weather.link + '">View Forecast »</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 + '° ' + weather.units.temp + '<br /><span>' + weather.currently + '</span></p>';
html += '<a href="' + weather.link + '">View Forecast »</a>';
$("#weather").html(html);
},
error: function (error) {
$("#weather").html('<p>' + error + '</p>');
}
});
});
</script>
这是我的HTML代码:
<div id="weather"></div>
html
有错误。请帮帮我。
答案 0 :(得分:5)
您没有初始化也没有声明html
,因此此行无法附加到其中:
html += '<p>' + weather.temp + '° ' + ...
您可以将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 + '° ' + weather.units.temp + '<br /><span>' + weather.currently + '</span></p>';
html += '<a href="' + weather.link + '">View Forecast »</a>';
$("#weather").html(html);
},
error: function (error) {
$("#weather").html('<p>' + error + '</p>');
}
});
});
答案 3 :(得分:0)