Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';我不能用javascript写这个div吗?_Javascript_Html - Fatal编程技术网

为什么可以';我不能用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;我也会在开始时缓存元素,而不是在代码中的三个不同点上提取它,但这只是一个旁白。