这是我的简短 HTML 文档。
为什么 Chrome 控制台会提示此错误:
"Uncaught TypeError: Cannot call method 'appendChild' of
null
"?
<html>
<head>
<title>Javascript Tests</title>
<script type="text/javascript">
var mySpan = document.createElement("span");
mySpan.innerHTML = "This is my span!";
mySpan.style.color = "red";
document.body.appendChild(mySpan);
alert("Why does the span change after this alert? Not before?");
</script>
</head>
<body>
</body>
</html>
最佳答案
主体此时尚未定义。通常,您希望在执行使用这些元素的 javascript 之前创建所有元素。在这种情况下,您在 head
中有一些 javascript使用 body
的部分.不酷。
您想将此代码包装在 window.onload
中处理程序或将其放置在 <body>
的之后标签(如 e-bacho 2.0 所述)。
<head>
<title>Javascript Tests</title>
<script type="text/javascript">
window.onload = function() {
var mySpan = document.createElement("span");
mySpan.innerHTML = "This is my span!";
mySpan.style.color = "red";
document.body.appendChild(mySpan);
alert("Why does the span change after this alert? Not before?");
}
</script>
</head>
See demo .
关于javascript - 为什么 document.body 在我的 javascript 中为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9916747/