2013-11-29 46 views
0

我正在从“专业的Javascript for Web开发人员”学习JS,我无法使用DOM树,因为它似乎不工作。JavaScript - 所有DOM操作函数都返回null/empty?

下面是我在本地测试的例子:

http://jsfiddle.net/y5nfL/

它提醒上的jsfiddle “DIV”,而本地我得到这个在控制台:

Uncaught TypeError: Cannot read property 'tagName' of null

这里是我的index.html:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8" /> 
     <title>JS sandbox</title> 
     <script type="text/javascript" src="script.js"></script> 
    </head> 
    <body> 
     <div id="myDiv"></div> 
    </body> 
</html> 

and script.js

var div = document.getElementById("myDiv"); 
alert(div.tagName); 

我错过了什么?我一直在尝试其他的东西,如克隆等,但getElementById()每次都返回空值...

回答

4

当您的脚本执行时,DOM不包含脚本标记之后的任何内容。在尝试访问DOM之前,您需要等待DOM完全准备就绪。

另一个更简单的选择是在</body>之前将脚本标记移动到文档的最后。

+2

哦,上帝,我太愚蠢了:)非常感谢,甚至在编辑之前,在正文结束标记之前移动脚本。非常感谢! – Wordpressor

+1

对不起,只好+1评论... ;-) – RobG

+0

哈哈,没关系,我唯一的借口是 - 我还在学习,毕竟,虽然我有点失望,我无法弄清楚我自己的。 – Wordpressor