老师,为什么我的内容会显示两遍呢?

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

小仙女要好好学习

2019-09-24 21:30:40

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>地图搜索</title>
    <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.11&key=a29a2eee0ee2be00b070f0f26f7b39a5"></script> 
    <style>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        #container{
            width: 100%;
            height: 100%;
            position: absolute;
            left: 0;
            top: 0;
        }
        #box{
            width: 400px;
            height: 300px;
            position: absolute;
            right: 20px;
            top: 30px;
            background: #fff;
            border: 1px solid #eee;
            box-shadow: 0 0 5px #000;
        }
    </style>
</head>
<body>
    <div id="container"></div> 
    <div id="box">
        <input type="text"  id="searchText">
        <ul id="node"></ul>
    </div>
    <script>
        var box=document.getElementById("box");
        var searchText=document.getElementById("searchText");
        var node=document.getElementById("node");

        var map=new AMap.Map("container",{
            zooom:10,//初始化地图的级别
            center:[116.22422,39.813285] //初始化地图的中心点
        });

        
      /*   AMap.plugin("AMap.Autocomplete",function(){
            new AMap.Autocomplete().search("北京",function(status,data){
                console.log(data);
            })
        }); */

        //地图搜索,先加载插件
        AMap.plugin("AMap.Autocomplete",function(){
            searchText.oninput=function(){
                node.innerHTML="";
                if(this.value==""){
                    return;
                }
                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; //data里面的属性
                        oLi.P=data.tips[i].location.P;
                        oLi.R=data.tips[i].location.R;
                        node.appendChild(oLi);
                        oLi.onclick=function(){
                            map.setCenter([this.R,this.P]);
                        }
                    }
                })
            }
        });

        




        
    </script>
</body>
</html>


写回答

1回答

好帮手慕慕子

2019-09-25

同学你好, 老师测试你的这段代码,实现效果是正确的, 输入搜索内容之后, 地图只显示一遍呀。

建议: 可以清除浏览器缓存在测试一下

如果还有疑惑,可以再次提问, 详细的描述一下你的问题, 便于老师准确高效的帮助你解决问题

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~~


0

0 学习 · 6815 问题

查看课程