Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我能';t更改HTML元素';通过对jquery函数$.getJSON()的回调来调用_Javascript_Jquery_Geolocation_Openweathermap - Fatal编程技术网

Javascript 我能';t更改HTML元素';通过对jquery函数$.getJSON()的回调来调用

Javascript 我能';t更改HTML元素';通过对jquery函数$.getJSON()的回调来调用,javascript,jquery,geolocation,openweathermap,Javascript,Jquery,Geolocation,Openweathermap,我正在尝试将具有id属性country(即id=“country”)的div元素的内容更改为用户当前位置的国家。我的代码有什么问题吗 function location (position){ var a=position.coords.latitude; var b=position.coords.longitude; $.getJSON('http://api.openweathermap.org/data/2.5/weather?lat='+a+'&

我正在尝试将具有id属性country(即
id=“country”
)的div元素的内容更改为用户当前位置的国家。我的代码有什么问题吗

function location (position){
    var a=position.coords.latitude;
    var b=position.coords.longitude;    
    $.getJSON('http://api.openweathermap.org/data/2.5/weather?lat='+a+'&lon='+b+'&APPID=b84cde4a2b80a14ecfebbd9ea7d08831&units=metric', function getData(data){
      $("#country").html(data.sys.country);
    }) 
  }
编辑

值得一提的是,从Chrome50开始,地理定位API将只在HTTPS等安全上下文中工作

如果您的站点位于非安全源(如HTTP)上,则获取用户位置的请求将不再有效

如果你使用HTTPS的话

原创

我猜你没有正确建立你的位置对象

确保您有一个
位置
对象,该对象有一个名为
坐标
的属性,该属性的值为具有两个属性(纬度和经度)的对象。每个对象都必须用
{}

它在这个代码段中非常有效(原始代码未更改):

功能位置(位置){
var a=位置坐标纬度;
var b=位置坐标经度;
$.getJSON('http://api.openweathermap.org/data/2.5/weather?lat=“+a+”&lon=“+b+”&APPID=b84cde4a2b80a14ecfebbd9ea7d08831&units=metric”,函数getData(data){
$(“#country”).html(data.sys.country);
})
}
/*在这里,我们使用包含纬度和经度的coords子对象构建位置对象*/
var pos={
“coords”:{
“纬度”:34.7459360,
“经度”:-118.2506350
}
};
/*现在我们实际使用position对象调用脚本位置(pos)*/
位置(pos)


您的Javascript看起来不错。如果添加
console.log(data.sys.country)
,会发生什么?这是您期望的值吗?添加到@MachineHost的注释中。如果不起作用,请尝试记录整个返回的JSON。如果我添加console.log(data.sys.country),它会显示“数据未定义”。因此,请检查浏览器开发工具网络中的实际请求,并查看响应正文中实际返回的内容。或者手动创建同一个url,并将其放入浏览器地址bari检查了整个过程-这是完美的。唯一的故障点可能是
位置
参数,因为不包括生成它的代码。也可能是
location(position)
函数在脚本中从未被触发,或者链中其他地方的javascript错误阻止它触发