老师麻烦看看,会报错

老师麻烦看看,会报错

<!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>

http://img1.sycdn.imooc.com//climg/5f1fe53409fc9c4806270212.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕久久 2020-07-28 17:29:45

同学你好,“new AMap.Autocomplete()”方法搜索到的数据data中的tips,可能出现某条数据的location为空的情况,如下:

http://img1.sycdn.imooc.com//climg/5f1fefc8092a41c311890263.jpg

http://img1.sycdn.imooc.com//climg/5f1fefd6091a30c609690607.jpg

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

http://img1.sycdn.imooc.com//climg/5f1feffa09dd204515940814.jpg

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

http://img1.sycdn.imooc.com//climg/5f1ff00009496b7108520486.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师