我正在从“专业Javascript for Web Developers”学习JS,我不能使用DOM树,因为它似乎不起作用。
以下是我在本地测试的一个例子:
它在jsfiddle上提醒“DIV”,而在本地我在控制台中得到这个:
未捕获的TypeError:无法读取null
的属性'tagName'
这是我的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>
和script.js
var div = document.getElementById("myDiv");
alert(div.tagName);
我错过了什么?我一直在尝试克隆等其他东西,但getElementById()每次都返回null ...
答案 0 :(得分:4)
执行脚本时,DOM在脚本标记之后不包含任何内容。在尝试访问DOM之前,您需要等待DOM完全就绪。
另一个更简单的选择是将脚本标记移动到文档的最末端,就在</body>
之前。