[英]JSON variable undefined when global
我想全局设置一个变量“ city ”,并将其用于其他功能。 我正在请求JSON数据,它似乎可以在此函数中工作
var city;
function conditions(data) {
var city = data.current_observation.display_location.full;
var wcode = data.current_observation.icon;
$('#city').append('<h2>' +'Weather forecast in ' + city + '</h2>');
$('#city').addClass('headings-style');
}
但是,当我尝试在其他函数中使用变量城市时 ,却得到了未定义的数据:
function forecastDays(info) {
var locationOne = info.forecast.simpleforecast.forecastday;
locationOne.forEach(function (daysPlus) {
var high = daysPlus.high.celsius;
var low = daysPlus.low.celsius;
var arr = ["day1", "day2", "day3", "day4"];
jQuery.each(arr, function (i, val) {
$("#temp_" + val).html('<p>' + city + 'High: ' + high + '°C' + '<br>' + ' Low: ' + low + '°C' + '</p>');
});
});
请帮忙。
而不是做
var city = data.current_observation.display_location.full;
你应该做
city = data.current_observation.display_location.full;
为了设置全球city
变量的值。 重用var
关键字将在函数范围内而不是全局范围内声明一个新的变量city
。
有点晚了,但这是一个例子。 (@ J.Chen提供了答案)
当您使用var city =
您将在函数作用域内重新定义变量,因此不再可以从全局作用域访问它。
在下面的示例中,在全局范围内正确使用了city
变量,而在函数范围内重新定义了town
变量:
var city; var town; function foo() { city = "New York"; var town = "Boston"; }; function bar() { console.log(city); console.log(town); } foo(); // assigns the variable a value bar(); // console "New York" / undefined
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
在funtion conditions
删除var city
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.