以下代码应显示单词Test ...但是会显示消息TypeError:document.getElementById(...)。 我无法弄清楚原因:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testtree</title>
</head>
<script>
document.getElementById("kaptree").innerHTML="TEST";
</script>
<body>
<div id="kaptree"></div>
</body>
</html>
任何人都可以帮我睁开眼睛吗?
答案 0 :(得分:5)
您尝试在加载之前访问kaptree
元素。在加载DOM后运行脚本。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testtree</title>
</head>
<body>
<div id="kaptree"></div>
<script>
document.getElementById("kaptree").innerHTML = "TEST";
</script>
</body>
</html>
答案 1 :(得分:2)
您应该将脚本放在html元素之后。
答案 2 :(得分:2)
此地方无法使用ID为“kaptree”的元素。将脚本块移动到正文下方并运行。
否则您必须等待文档就绪状态。
答案 3 :(得分:1)
您的脚本是在您尝试引用的元素之前定义的。
之后移动:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testtree</title>
</head>
<body>
<div id="kaptree"></div>
</body>
<script>
document.getElementById("kaptree").innerHTML="TEST";
</script>
</html>
或者更具可读性和可维护性的解决方案,使用函数:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testtree</title>
<script>
function changeValue(){
document.getElementById('kaptree').innerHTML='TEST';
}
</script>
</head>
<body>
<div id="kaptree"></div>
<script>changeValue()</script>
</body>
</html>
答案 4 :(得分:1)
如果将带有DIV设置的主体部分移动到顶部,则可以正常工作。
它按顺序运行,因此在定义DIV之前无法指定inner.html
答案 5 :(得分:1)
因为您的JS代码是在HTML之前调用的。
解决方案1:在</body>
代码
示例:强>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testtree</title>
</head>
<body>
<div id="kaptree"></div>
</body>
<script>
document.getElementById("kaptree").innerHTML+="TEST";
</script>
</html>
解决方案2:在window.load
函数
示例:强>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testtree</title>
<script>
window.onload = (function(){
document.getElementById("kaptree").innerHTML+="TEST";
});
</script>
</head>
<body>
<div id="kaptree"></div>
</body>
</html>
答案 6 :(得分:0)
一个。将脚本放在头部或身体内。
B中。将脚本放在#kaptree之后,或添加文档就绪语句。你试着打电话给那些还没有的东西。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testtree</title>
<script>
document.addEventListener('DOMContentLoaded', function(){
document.getElementById("kaptree").innerHTML="TEST";
}, false);
</script>
</head>
<body>
<div id="kaptree"></div>
</body>
</html>
答案 7 :(得分:-1)
有时解决方案很简单。
我将函数调用放入:
$( document ).ready(function() {
});