javascript - JQuery 函数不打印任何内容

标签 javascript jquery

我试图让它工作这个 jquery 函数,但没有任何结果。就这个。它从 setmap(一个 servlet)接收一个 json 格式的列表。我完全确定我得到了列表,但不幸的是我没有看到 map 出现在屏幕上。

$(document).ready(function(){

    $("#airports").click(function(){

        $.getJSON('setmap', function(list) {       

            var mapOptions = {
                zoom: 2,
                mapTypeId: new google.maps.MapTypeId.TERRAIN
            };

            $('.grid_12').append($("<div id='mapCanvas'></div>"));

            var map = new google.maps.Map(mapCanvas, mapOptions);  

            if(list.length > 0)
            {
                for (var i = 0; i < list.length; i++) 
                {
                    var latLng = new google.maps.LatLng(list[i].latitude,list[i].longitude);
                    var marker = new google.maps.Marker({
                        position: latLng,
                        map: map
                    });
                }    
            } 

        });

    });
});

HTML

<article>
  <section class="grid_12"></section>
</article>

最佳答案

在这一行中:

var map = new google.maps.Map(mapCanvas, mapOptions); 

mapCanvas 未定义。它可能在某些浏览器中隐式工作,因为某些浏览器将为每个 ID 定义一个符号,但您确实不应该依赖它。我假设你想在那里传递 DOM 元素(这就是谷歌地图想要的),所以你可以像这样更明确地做到这一点:

var mapCanvas = ($("<div id='mapCanvas'></div>").appendTo('.grid_12'))[0];
var map = new google.maps.Map(mapCanvas, mapOptions); 

由于您没有提供可运行的演示,因此可能还有其他错误。

关于javascript - JQuery 函数不打印任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24396099/

相关文章:

javascript - 添加了类,但未更改动画元素属性

javascript - Highcharts : Chart with drilldown how to obtain click event of drill up button

javascript - cal-heatmap onclick onday,滚动到本周的部分

javascript - 切换查询字符串变量

jquery - 如何在基于 <ul> 的导航菜单下将图形居中?

javascript - 在flot-pie图表js中哪里添加和注册自定义属性?

javascript - 如何在 html 页面中添加脚本的结果?

javascript - 将函数数组作为参数传递

javascript - SVG foreignObject 不在 Safari 中显示

javascript - 选中复选框时如何禁用幻灯片范围?