有人知道为什么我的代码可以在代码页上运行,而不能在桌面上运行吗?当我在桌面上运行我的代码时,我一直收到一个“无法读取appendChild”错误。我对编码很陌生,刚开始自学如何操作DOM。
https://codepen.io/unicorn1/pen/JpYqjJ
const container = document.querySelector('#container');
const content = document.createElement('div');
content.classList.add('content');
content.textContent = 'Dom text-content!';
container.appendChild(content);错误消息

发布于 2018-02-02 05:57:46
在身体结束之前,脚本应该放在底部。
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>
THE TITLE OF YOUR WEBPAGE
</h1>
<div id="container"></div>
<script>
const container = document.querySelector('#container');
const content = document.createElement('div');
content.classList.add('content');
content.textContent = 'Dom text-content!';
container.appendChild(content);
</script>
</body>
</html>也可以将脚本的内容放在window.onload回调中,如下所示:
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script>
window.onload = function() {
const container = document.querySelector('#container');
const content = document.createElement('div');
content.classList.add('content');
content.textContent = 'Dom text-content!';
container.appendChild(content);
};
</script>
<h1>
THE TITLE OF YOUR WEBPAGE
</h1>
<div id="container"></div>
</body>
</html>原则是,您可以在DOM加载之后操作DOM;在loaded.that是window.onload和脚本位置的工作方式之前,您不能操作DOM;此外,您可以将window.onload更改为DOMContentLoaded
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script>
document.addEventListener('DOMContentLoaded', function() {
const container = document.querySelector('#container');
const content = document.createElement('div');
content.classList.add('content');
content.textContent = 'Dom text-content!';
container.appendChild(content);
}, false);
</script>
<h1>
THE TITLE OF YOUR WEBPAGE
</h1>
<div id="container"></div>
</body>
</html>https://stackoverflow.com/questions/48576304
复制相似问题