老师麻烦看看,会报错
来源:4-2 地图搜索(2)
qq_Mr郭生_0
2020-07-28 16:43:36
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=faf7b1a7905b56e0468f876e92b57f21"></script>
<style>
*{margin: 0;padding: 0;list-style: none;}
#container{width: 100%;height: 100%;position: absolute;left: 0;top: 0;}
#setCenterNode{width: 400px;height: 500px;position: absolute;z-index: 99;right: 20px;top: 20px; border: 1px solid black;box-shadow: 0 0 5px black;background-color: white;}
#node li{cursor: pointer;}
</style>
</head>
<body>
<div id="container"></div>
<div id="setCenterNode">
<input type="text" id="searchText">
<ul id="node"></ul>
</div>
<script type="text/javascript">
var map=new AMap.Map('container',{
zoom:11,
center:[100.379391,30.861536]
});
//加载插件,地图加载完毕会触发回调函数
AMap.plugin('AMap.Autocomplete',function(){
//console.log(1)
searchText.oninput=function(){
if(this.value==''){
return;
}
node.innerHTML='';
new AMap.Autocomplete().search(this.value,function(status,data){
for(var i=0;i<data.tips.length;i++){
var oLi=document.createElement('li');
oLi.innerHTML=data.tips[i].name;
oLi.R=data.tips[i].location.R;
oLi.Q=data.tips[i].location.Q;
node.appendChild(oLi);
oLi.onclick=function(){
//console.log(this.Q,this.R)
map.setCenter([this.Q,this.R]);
}
}
});
}
});
</script>
</body>
</html>

1回答
好帮手慕久久
2020-07-28
同学你好,“new AMap.Autocomplete()”方法搜索到的数据data中的tips,可能出现某条数据的location为空的情况,如下:


这就造成了oLi的R和Q属性值可能为undefined,当R、Q属性值为undefined时,点击该li,就会出现如下报错:

所以可以处理一下,如下:

如果我的回答帮到了你,欢迎采纳,祝学习愉快!
相似问题
回答 1
回答 2