我已经尝试了几种写入这个div的方法,但要知道:
&#39>测试'有效,但没有别的:
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>";
})();
并在html中
<div id="menu2">x</div>
x表示
在撰写本文时,这是http://www.jchess.nyc(索引页)
答案 0 :(得分:2)
这是因为document.write
只是在正文中写下你指定的文字;加载任何元素都不需要document.write
,但document.getElementById()
搜索DOM中的元素,当您开始执行脚本时,不会立即创建该元素,所以你的脚本在加载之前试图用id menu2访问你的元素。
为了能够使用document.getElementById()
,您应该等待DOM加载,方法是将所有访问DOM的方法放到:
window.onload=function(){
}
答案 1 :(得分:2)
你的问题是你把脚本放在正文的开头,所以它在div#menu2
在DOM中可用之前执行。
最简单的解决方法是在关闭script
代码之前移动</body>
代码。同时删除document.write
,这不是问题,但你不需要它。
<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>