<html>
<head>
<title>Test javascript</title>
<script type="text/javascript">
var e = document.getElementById("db_info");
e.innerHTML='Found you';
</script>
</head>
<body>
<div id="content">
<div id="tables">
</div>
<div id="db_info">
</div>
</div>
</body>
</html>
如果我使用alert(e);
,它会显示null
...显然我在屏幕上看不到任何“找到你”。我做错了什么?
发布于 2010-12-21 18:55:03
问题是您试图在元素存在之前访问它。您需要等待页面完全加载。一种可能的方法是使用onload
处理程序:
window.onload = function () {
var e = document.getElementById("db_info");
e.innerHTML='Found you';
};
不过,大多数常见的JavaScript库都提供了支持DOM的事件。这样更好,因为window.onload
也会等待所有图像。在大多数情况下,您不需要这样做。
另一种方法是将脚本标记放在结束</body>
-tag之前,因为它前面的所有内容都是在执行时加载的。
发布于 2010-12-21 18:56:33
浏览器如何知道何时运行脚本标记中的代码?因此,为了使代码在窗口完全加载后运行,
window.onload = doStuff;
function doStuff() {
var e = document.getElementById("db_info");
e.innerHTML='Found you';
}
另一种选择是将<script...</script>
放在结束</body>
标记之前。
发布于 2010-12-21 18:54:45
脚本是在构建主体的DOM之前执行的。将其全部放入一个函数中,并从主体元素的onload
调用它。
https://stackoverflow.com/questions/4498482
复制相似问题