首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dom操作-更改DOM

Dom操作-更改DOM
EN

Stack Overflow用户
提问于 2018-02-02 05:36:30
回答 1查看 53关注 0票数 0

有人知道为什么我的代码可以在代码页上运行,而不能在桌面上运行吗?当我在桌面上运行我的代码时,我一直收到一个“无法读取appendChild”错误。我对编码很陌生,刚开始自学如何操作DOM。

https://codepen.io/unicorn1/pen/JpYqjJ

代码语言:javascript
复制
const container = document.querySelector('#container');
const content = document.createElement('div');
content.classList.add('content');
content.textContent = 'Dom text-content!';
container.appendChild(content);

错误消息

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-02 05:57:46

在身体结束之前,脚本应该放在底部。

代码语言:javascript
复制
<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回调中,如下所示:

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48576304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档