未捕获的TypeError:无法读取null的属性'firstChild'(Google地图无法加载)

Cal*_*ton 23 javascript jquery google-maps

我想知道是否有人能够将他们的知识借给Google Maps API.我已经阅读了类似的问题,仍然无法得出答案.正如标题所示,我的浏览器控制台中显示的错误是:

Uncaught TypeError: Cannot read property 'firstChild' of null

我知道这意味着价值传递的方式存在问题; 以下是我sources在Chrome 中指向的相关代码段:

// --- Global Variable
var map;


// --- View Model.
function AppViewModel() {

  // Initial Map
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 39.305, long: -76.617},
    zoom: 12
  });


// --- Initalize Application.
function initApp() {
  ko.applybindings(new AppViewModel());
}
Run Code Online (Sandbox Code Playgroud)

当Google地图尝试加载时,似乎会抛出该错误.有没有人知道我在这里做错了什么?感谢您提供的任何帮助.

Html供参考:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Bolton Hill Neighborhood Map</title>
  <link rel="stylesheet" href="static/main.css">
  <meta name="viewport" content"width=device-width, initial-scale=1">
</head>
<body>
 <div class='map'>maps error</div>

  <script src="./js/knockout.js"></script>
  <script src="./js/jquery.min.js"></script>
  <script src="./js/app.js"></script>
  <script async defer src="https://maps.googleapis.com/maps/api/js?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&callback=initApp" onerror="errorHandler"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Hua*_*ung 57

我想center: {lat: 39.305, long: -76.617},long不对.
您应该像这样定义latlng:

var latlng = new google.maps.LatLng(39.305, -76.617);
map = new google.maps.Map(document.getElementById('map'), {
  center: latlng,
  zoom: 12
});
Run Code Online (Sandbox Code Playgroud)

未捕获的TypeError:无法读取null的属性"firstChild"

错误消息通常发生在 map = new google.maps.Map(document.getElementById('id_that_does_notexist'), {

  • 你把'class ='map'`错了,你需要改变这个:`<div id ='map'> map error </ div>` (8认同)
  • 这是我的问题`map = new google.maps.Map(document.getElementById('id_that_does_notexist'),{` (6认同)