首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试获取地理位置时,“未捕获的值:无法设置空值的属性‘TypeError’”?

问尝试获取地理位置时,“未捕获的值:无法设置空值的属性‘TypeError’”?
EN

Stack Overflow用户
提问于 2018-04-15 10:36:27
回答 1查看 390关注 0票数 1
代码语言:javascript
复制
var lat = document.querySelector("#lat");
var long = document.querySelector("#long")
var latLong = document.getElementById("latLong");

if (navigator.geolocation){
  navigator.geolocation.getCurrentPosition(myPosition)
}
else {
  latLong.innerHTML = "sorry, position not avaliable"
}

function myPosition (position){
  lat.value  =  position.coords.latitude;
  long.value = position.coords.longitude;
}

不太确定这里发生了什么/为什么它会给我这个错误。如果我将myPosition更改为

代码语言:javascript
复制
function myPosition (position){
      latLong.innerHTML =  "Latitude: " + position.coords.latitude  + 
      "Longitude: " + position.coords.longitude;
    }

它工作得很好,没有错误。但是我想把纬度和经度分别放在不同的变量中

我是不是漏掉了什么?我不明白为什么这不起作用。我尝试过lat.textContent/ work .textContent、lat.innerHTML/long.innerHTML,但似乎对每个坐标都不起作用

HTML:

代码语言:javascript
复制
<h2> Your location is... </h2>

<div id="latLong"></div>

<div id="lag">Latitude: </div>
<div id="long">Longitude: </div>
EN

回答 1

Stack Overflow用户

发布于 2018-04-15 10:44:10

您在HTML中输入了错误的元素ID。

代码语言:javascript
复制
<div id="lag">Latitude: </div>

应该是

代码语言:javascript
复制
<div id="lat">Latitude: </div>

如果您想要使用#lat选择它。这样,分配给独立元素的myPosition就不会出错。

但是,您应该仅在为输入值赋值时使用.value,例如为输入域和文本区域赋值。否则,如果要设置div或其他元素的文本内容,请使用.textContent

代码语言:javascript
复制
function myPosition (position){
  lat.textContent  = position.coords.latitude;
  long.textContent = position.coords.longitude;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49837979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档