这是一个非常简单的程序,输出应该是s
和JavaScript,但我只是a
。
<html>
<head>
<title></title>
<script type="text/javascript">
document.getElementById("ma").innerHTML="JavaScript";
</script>
</head>
<body>
<h1 id="ma">s</h1>
</body>
</html>
答案 0 :(得分:25)
在您尝试设置值时,该元素不存在。将<h1>
添加到DOM后,您需要调用此方法。
您可以进一步移动此<script>
标记,或将逻辑添加到文档加载时应该调用的函数中:
window.onload = function() {
/* Add your logic here */
}
答案 1 :(得分:11)
你必须等到DOM加载完毕。
window.onload = function(){
document.getElementById("ma").innerHTML="JavaScript";
}
答案 2 :(得分:11)
您有两个选择:
window.onload = function() {
//your script here
}
或
<body>
<h1 id="ma">s</h1>
<script type='text/javascript'>
//your script here
</script>
</body>
答案 3 :(得分:1)
请注意,您使用element.innerHTML =&#34;任何内容&#34; 将替换元素的实际内容。如果您要添加更多内容,您必须将所有内容存储到累积变量,元素的实际内容也是如此,以便保留它,然后在内容已满时将此变量解析为innerHTML。
<script type=text/javascript">
var MyFullVar = element.innerHTML + "my new content I want to add";
element.innerHTML = MyFullVar;
</script>
答案 4 :(得分:1)
您也可以使用 defer
关键字和脚本在 DOM 初始化后执行它
<script type=text/javascript" defer>/*Your script here*/</script>
答案 5 :(得分:0)
您也可以改为...
<script type=text/javascript">
window.onload = function () {
var element = document.getElementById('element').innerHTML;
var content = ".........";
element.innerHTML += content.toString();
}
</script>
根据w3schools和基本JavaScript规则,此方法有效。我之前也尝试过。
这基于onload函数在启动时自动运行代码。它还利用JS赋值运算符快速有效地执行代码。
答案 6 :(得分:0)
提供的选项对我不起作用。
document.querySelector
为我工作!
例如:
document.querySelector("#ma").innerHTML = "HELLO";