为什么可以';我不能用javascript写这个div吗?
我尝试过几种写信给该部门的方法,但要知道: “测试”起作用,但除此之外:为什么可以';我不能用javascript写这个div吗?,javascript,html,Javascript,Html,我尝试过几种写信给该部门的方法,但要知道: “测试”起作用,但除此之外: document.write("testing"); document.getElementById('menu2').innerHTML += "<br>Some new content!"; var node = document.getElementById("menu2"); node.innerHTML = "<p>" + "Hello" + "</p>"; (function
document.write("testing");
document.getElementById('menu2').innerHTML += "<br>Some new content!";
var node = document.getElementById("menu2");
node.innerHTML = "<p>" + "Hello" + "</p>";
(function printMsg() {
var node = document.getElementById("menu2");
node.innerHTML = "<p>" + "Hello World!" + "</p>";
})();
document.write(“测试”);
document.getElementById('menu2')。innerHTML+=“
一些新内容!”;
var节点=document.getElementById(“menu2”);
node.innerHTML=“”+“你好”+“”;
(函数printMsg(){
var节点=document.getElementById(“menu2”);
node.innerHTML=“”+“你好,世界!”+“”;
})();
在html中
<div id="menu2">x</div>
x
x显示
在撰写本文时,这是在(索引页)发生的,因为
文档;不需要加载任何元素就可以document.write
,但是document.getElementById()
会在DOM中搜索元素,在开始执行脚本时不会立即创建该元素,因此在加载之前,脚本会尝试使用id menu2访问元素
为了能够使用document.getElementById()
,您应该等待DOM加载,方法是将访问DOM的所有方法放置到:
window.onload=function(){
}
您的问题是,您将脚本放在主体的开头,因此它在DOM中可用的div#menu2
之前执行
最简单的修复方法是在关闭
标记之前移动脚本
标记。还要删除文档。写入,这不是问题,但您不需要它
<script>
document.getElementById('menu2').innerHTML += "<br>Some new content!";
var node = document.getElementById("menu2");
node.innerHTML = "<p>" + "Hello" + "</p>";
(function printMsg() {
var node = document.getElementById("menu2");
node.innerHTML = "<p>" + "Hello World!" + "</p>";
})();
</script>
</body>
document.getElementById('menu2')。innerHTML+=“
一些新内容!”;
var节点=document.getElementById(“menu2”);
node.innerHTML=“”+“你好”+“”;
(函数printMsg(){
var节点=document.getElementById(“menu2”);
node.innerHTML=“”+“你好,世界!”+“”;
})();
“document.write只会覆盖文档中的所有html”。在OP的情况下,它不会发生,因为文档
仍然处于打开状态(正在呈现)。所以document.write
只是将文本附加到文档中,而不会覆盖正文。@dfd fair;我也会在开始时缓存元素,而不是在代码中的三个不同点上提取它,但这只是一个旁白。