getElementById не может найти div, вложенный в другие div в HTML5 - PullRequest
0 голосов
/ 02 марта 2012

У меня есть такой код

<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 голосов
/ 25 марта 2015

Теперь, когда я понимаю, как работает сеть, моя проблема была вызвана тем, что div, который я пытался выбрать, не загружается во время поиска.

Все, что нужно сделать, это дождаться первой загрузки DOM, используя что-то вроде этого

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

или эквивалент Jquery

$(function() {
  // TODO
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...