正确使用.innerHTML

时间:2014-05-07 12:32:30

标签: javascript html innerhtml

尝试将内容添加到各个div容器中我偶然发现了命令.innerHTML,我试图相应地实现它。奇怪的是我收到以下错误:

  

*未捕获的TypeError:无法读取null *

的属性'innerHTML'

我在我的本地Apache服务器上运行代码,如果这有任何区别的话。

的index.html

<html>
  <head>
    <title>Welcome</title>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    <script type="text/javascript" src="javascript.js"></script>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
  <div id="header">
  <h1>Startseite</h1>
  </div>
  <div id="container">
    <div id="left">
        Navigation
    </div>
    <div id="content"></div>
    <div id="right"></div>
    <div class="clr"></div>
  </div>
  </body>
</html>

javascript.js

var navidiv = document.getElementById('left');
navidiv.innerHTML += "FirstElement"; 

3 个答案:

答案 0 :(得分:1)

将其放入window.onload

window.onload = function()
   var navidiv = document.getElementById('left');
   navidiv.innerHTML += "FirstElement"; 
}

该元素必须存在于DOM中,才能在JS中访问它

答案 1 :(得分:1)

在使用javascript访问DOM元素之前,必须确保已加载DOM元素。

由于您使用的是jquery,因此您的javascript可以只是

$(function() {
  var $navidiv = $('#left');
  $navidiv.html($navidiv.html() + 'FirstElement');
});

答案 2 :(得分:0)

试试这个

<强> HTML

<div id="header">
  <h1>Startseite</h1>
  </div>
  <div id="container">
    <div id="left">
        Navigation
    </div>
    <div id="content"></div>
    <div id="right"></div>
    <div class="clr"></div>
  </div>

<强> javascript.js

$( document ).ready(function() {
    var navdiv=$("#left").html();
    $("#left").html(navdiv+"FirstElement");
});

请参阅DEMO