Javascript jQuery JSON获取问题
我试图从JSON文件中获取信息,但数据变量中没有任何内容。谁能告诉我我做错了什么。JSON文件是下载的,所以我没有从服务器上获取任何东西是没有问题的Javascript jQuery JSON获取问题,javascript,json,jquery,Javascript,Json,Jquery,我试图从JSON文件中获取信息,但数据变量中没有任何内容。谁能告诉我我做错了什么。JSON文件是下载的,所以我没有从服务器上获取任何东西是没有问题的 function handle_geolocation_query(position) { var url = "http://ws.geonames.org/findNearByWeatherJSON?lat=" + position.coords.latitude + "&lng=" + position.coords.long
function handle_geolocation_query(position) {
var url = "http://ws.geonames.org/findNearByWeatherJSON?lat=" + position.coords.latitude + "&lng=" + position.coords.longitude + "&callback=?";
$.getJSON(url, function(info){
var clouds = info.weatherObservation.clouds;
var weather = info.weatherObservation.weatherCondition;
var temp = info.weatherObservation.temperature;
var humidity = info.weatherObservation.humidity;
});
//console.log(clouds);
document.getElementById('result').innerHTML = "C:" + clouds + ", W:" + weather + ", T:" + temp + ", H:" + humidity;
}
谢谢你的帮助。
非常感谢。您应该尝试将修改innerHTML的代码放在回调中。请记住,JS具有函数作用域。您无法在外部访问这些变量。此外,这些变量仅在执行检索JSON的回调后设置
function handle_geolocation_query(position) {
var url = "http://ws.geonames.org/findNearByWeatherJSON?lat=" + position.coords.latitude + "&lng=" + position.coords.longitude + "&callback=?";
$.getJSON(url, function(info){
var clouds = info.weatherObservation.clouds;
var weather = info.weatherObservation.weatherCondition;
var temp = info.weatherObservation.temperature;
var humidity = info.weatherObservation.humidity;
$('#result').html("C:" + clouds + ", W:" + weather + ", T:" + temp + ", H:" + humidity);
});
}
编辑:根据政府的建议,无论何时发现需要更改innerHTML,都应该使用jQuery API的封装html()方法
此外,您还可以使用:
console.log(info);
在getJSON回调中调试时,只是为了确保数据按您认为的方式进行结构。尝试执行以下操作,我认为它可能是作为对象数组出现的
var clouds = info.weatherObservation.clouds;
var weather = info[0].weatherObservation.weatherCondition;
var temp = info[0].weatherObservation.temperature;
var humidity = info[0].weatherObservation.humidity;
使用firebug,您可以检查网络面板上的json选项卡,它是否返回您正在访问的相同结构。还有一个建议,不管您使用jquery,请使用.html()而不是.innerhtml,您可以简单地说(“#result”).html();weatherObservation是一个对象数组还是单个对象。“数据变量中没有任何内容”与“JSON文件已下载”的说法相矛盾。要么它带着什么回来,要么它没有。哦,天哪,你救了我这么多的悲痛。我真的很感谢你的帮助。非常感谢。@Aayus,正如Rabifire所说的,这可能是结构问题,我想你没有进入它返回的方式。。。??在正常访问对象属性时,firebug控制台上是否有错误?如果错误,它会抛出错误,@Ayush在修复问题后告诉我们,只是想知道问题出在哪里。