A-A+
Javascript Cannot call method ‘appendChild’ of null错误
调试过程中出现一个奇怪的错误:Uncaught TypeError: Cannot call method \'appendChild\' of null,看如下代码:
- <html>
- <head>
- <title>JS Practice</title>
- </head>
- <body>
- <script src="script.js"></script>
- <div id = "main">
- <h1>Simple HTML Page</h1>
- <p>This is a very simple HTML page.</p>
- <p>It's about as basic as they come. It has: </p>
- <ul>
- <li>An H1 Tag</li>
- <li>Two paragraphs</li>
- <li>An unordered list</li>
- </ul>
- </div>
- <div id="javascript">
- </div>
- </body>
- </html>
只有在谷歌浏览器出现这个错误,其他IE系列,FF,Opera都是正常,找了一下原因,js的,代码如下:
document.body.appendChild(container);
是在 body 之前运行的,这个时候,document.body 不存在,即为 null ,所以 document.body.appendChild 就会报告上面的错误。
解决方案:
把SCRIPT 代码包含到 body 里面或者放到body标签后面即可正常运行,修改后代码如下:
- <html>
- <head>
- <title>JS Practice</title>
- </head>
- <body>
- <div id = "main">
- <h1>Simple HTML Page</h1>
- <p>This is a very simple HTML page.</p>
- <p>It's about as basic as they come. It has: </p>
- <ul>
- <li>An H1 Tag</li>
- <li>Two paragraphs</li>
- <li>An unordered list</li>
- </ul>
- </div>
- <div id="javascript">
- </div>
- <!-- Now it will run after the above elements have been created -->
- <script src="script.js"></script>
- </body>
- </html>
你在在gg浏览器下尝试一下会不会出现Javascript Cannot call method 'appendChild' of null错误啊,没有了吧.