getElementById找不到嵌套在HTML5中其他div内的div

时间:2012-03-02 15:05:51

标签: javascript html5 dom twitter-bootstrap

我有这样的代码

<div id="main" class="container-fluid">
        <div id="main1" class="row-fluid">
            <div id="main2" class="span2">
                <h1>Feynman</h1>
                <input id="address" type="textbox" class="search-query" placeholder="Search">
                <input type="button" value="Encode" class="btn btn-primary btn-large" onclick="codeAddress()">
                <p></p>
            </div>
            <div id="main3" class="span10">
                <div id="map_canvas" style="width:100%; height:100%"></div>
            </div>
        </div>
    </div>

我在正文document.getElementById("map_canvas")中使用一个简单的onload来从初始化中调用它。

问题是,如果我拿出我的<!DOCTYPE html>它会起作用,但如果我把它作为HTML5页面标记我的页面就会失败。

示例js

var geocoder;
        var map;
        function initialize() {
            geocoder = new google.maps.Geocoder();
            var latlng = new google.maps.LatLng(51.486407, 0.059566);
            var myOptions = {
                zoom : 10,
                center : latlng,
                mapTypeId : google.maps.MapTypeId.ROADMAP
            }
            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

        }

1 个答案:

答案 0 :(得分:0)

现在我已经了解了网络是如何工作的,我的问题实际上是由于我在搜索时试图选择不加载的div。

所有人需要做的就是等待DOM首先加载,使用类似的东西

document.addEventListener('DOMContentLoaded', function() {
   // TODO
});

或Jquery等价物

$(function() {
  // TODO
});