请问一下老师为什么会出现报错呢

来源:4-2 地图搜索(2)

weixin_慕先生7015352

2020-10-21 11:56:24

# 具体遇到的问题

# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>地图拓展功能</title>

    <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=ce32bba4e74c48d6bc07087c757d66c2"></script

</head>

<style>

    *{

            margin:0;

            padding:0;

            list-stylenone;

        }

        #container {

            width:100%;

             height100%;

             position:absolute;

             left:0px;

             top:0px;

        } 

        #setZoomNode{

            width:200px;

            height:500px;

            position:absolute;

            z-index:99;

            right:20px;

            top:20px;

            border:1px solid black;

            box-shadow0 0 5px black;

            background:#fff;

            padding:10px;

        }

        #node li{

            cursor:pointer;

        }

</style>

<body>

    <div id="container"></div>

    <div id="setZoomNode">

        <input type="text" id="searchtext">

        <ul id="node">


        </ul>

    </div>


    <script>

        var map=new AMap.Map('container',{

            zoom:8,

            center:[116,40]

        });


        var searchtext=document.querySelector('#searchtext');

        var node=document.querySelector('#node');


        //  输入提示(加载插件、Autocomplete:地图加载完毕,会触发回调函数)

        AMap.plugin('AMap.Autocomplete',function(){

        

            searchtext.oninput=function(){

                node.innerHTML=''

                if(this.value==''){

                        return ;

                    }

                

                new AMap.Autocomplete().search(this.value,function(status,data){

                    console.log(data);                   

                    for(var i=0;i<data.tips.length;i++){

                        var oli=document.createElement('li');

                        oli.innerHTML=data.tips[i].name;

                        // 获取到li的坐标[R,P];

                        oli.Q=data.tips[i].location.Q;

                        oli.R=data.tips[i].location.R;

                        node.appendChild(oli);


                        // 当点击li时,其坐标变为中心点

                        oli.onclick=function(){

                            // console.log([this.R,this.Q]);

                            map.setCenter([this.R,this.Q]);

                        }

                    }

                })

            }

        })


        // map.on('moveend',function(){

        //     console.log(map.getCenter());

        // })

        

    </script>

</body>

</html>

http://img.mukewang.com/climg/5f8fb1460977f23208760652.jpg在这里输入代码,可通过选择【代码语言】突出显示

写回答

1回答

好帮手慕夭夭

2020-10-21

同学你好,老师这边测试同学的代码,是没有报错的,如下:

http://img.mukewang.com/climg/5f8fcf0d09a93b9c13690854.jpg

截图报错的意思是“undefined无法区域length属性”,即调用length属性的是undefined。代码中是data.tips调用了length属性,老师这边也输出了一下,发现也不是undefined:

http://img.mukewang.com/climg/5f8fcf9c09c5a46005690203.jpg

输出结果不是undefined:

http://img.mukewang.com/climg/5f8fcfbf09ba8d3c11320593.jpg


建议同学重新测试一下哦,祝学习愉快~

0

0 学习 · 6815 问题

查看课程