我正在尝试更新div标签的innerHTML,可能在这里的简单应用程序中出现了一些错误:
<!DOCTYPE html>
<html lang="en" xmlns=""http://www.w3.org/1999/xhtml"">
<head>
<title>Test</title>
<script>
var element = document.getElementById("aaa");
element.innerHTML = "1";
</script>
</head>
<body>
<div id="aaa">aaa</div>
</body>
</html>当我在浏览器中看到"aaa“时,我希望它是"1”。
有什么想法吗?
谢谢
发布于 2013-04-24 18:02:31
在执行脚本的时候,JavaScript看不到任何#aaa元素。
最好的做法是将<script>标记放在</body>之前,这样脚本就会在加载完所有文档时执行:
<!DOCTYPE html>
<html lang="en" xmlns=""http://www.w3.org/1999/xhtml"">
<head>
<title>Test</title>
</head>
<body>
<div id="aaa">aaa</div>
<script>
var element = document.getElementById("aaa");
element.innerHTML = "1";
</script>
</body>
</html>发布于 2013-04-24 18:02:52
这是因为在执行脚本时,元素aaa还没有添加到dom中。
进行dom操作的更安全的方法是在dom加载之后进行,因此您可以使用onload事件处理程序。
另一个与html加载相关的技巧是将所有脚本放在页面底部。
您需要将脚本移动到on load
<html lang="en" xmlns=""http://www.w3.org/1999/xhtml"">
<head>
<title>Test</title>
<script>
window.onload = function(){
var element = document.getElementById("aaa");
element.innerHTML = "1";
}
</script>
</head>
<body>
<div id="aaa">aaa</div>
</body>
</html>发布于 2013-04-24 18:03:20
尝尝这个
<body>
<div id="aaa">aaa</div>
<script>
var element = document.getElementById("aaa");
element.innerHTML = "1";
</script>
</body>脚本代码应在加载名为'aaa'的标签后执行,否则使用onload事件函数调用代码
https://stackoverflow.com/questions/16189060
复制相似问题