<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..很显然,屏幕上没有任何“找到你”的信息。我究竟做错了什么?
3 回答
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
问题是您试图在元素存在之前对其进行访问。您需要等待页面完全加载。一种可能的方法是使用onload处理程序:
window.onload = function () {
var e = document.getElementById("db_info");
e.innerHTML='Found you';
};
不过,大多数常见的JavaScript库都提供DOM就绪事件。这样比较好,因为window.onload也要等待所有图像。在大多数情况下,您不需要这样做。
另一种方法是将script标签放置在您的</body>-tag 之前,因为它前面的所有内容都会在执行时加载。
白衣非少年
TA贡献1155条经验 获得超0个赞
浏览器如何知道何时在script标签内运行代码?因此,要使代码在窗口完全加载后运行,
window.onload = doStuff;
function doStuff() {
var e = document.getElementById("db_info");
e.innerHTML='Found you';
}
另一种选择是将您<script...</script>的</body>代码放在结束标记之前。
慕桂英4014372
TA贡献1871条经验 获得超13个赞
在元素存在之前调用脚本。
您应该尝试以下方法之一:
将代码包装到一个函数中,并使用body onload事件对其进行调用。
将脚本放在文档末尾
在脚本标签声明中使用defer属性
添加回答
举报
0/150
提交
取消