gpt4 book ai didi

javascript - 为什么简单的 createElement 命令不能与 JS 一起使用并在 HTML DOM 中创建元素

转载 作者:行者123 更新时间:2023-12-03 04:45:25 25 4
gpt4 key购买 nike

我不知道,但这个问题可能有最简单的答案,但我无法理解。

我基本上想复制一个简单的 HTML 代码

<p></p>

使用 JavaScript。如果我简单写<p></p>在 html 中,我得到以下渲染元素:

<html><head></head><body><p></p></body></html>

我创建了一个 html 文件并在其中编写了以下代码。

<script>
var para = document.createElement('p');
</script>

我在浏览器中渲染了此文件,并发现正在渲染以下元素。

<html>
<head>
<script>
var para = document.createElement('p');
</script>
</head>
<body></body>
</html>

显然我的元素没有创建。我的猜测是我没有指定任何父级,所以它没有创建它。由于 body 是默认的 DOM 元素,因此我想到获取 body dom 元素并将 para 作为子元素附加到它,所以我编写了以下代码:

<script>
var body = document.getElementsByTagName('body')[0];
var para = document.createElement('p');

body.appendChild(para);
</script>

但我仍然没有让它发挥作用。渲染如下:

<html>
<head>
<script>
var body = document.getElementsByTagName('body')[0];
var para = document.createElement('p');

body.appendChild(para);
</script>
</head>
<body>
</body>
</html>

我得到了一个未捕获的类型错误:无法读取未定义的属性“appendChild”,这告诉我变量 body 的值为 undefined ,但是为什么根据JS他们没有body元素呢? DOM 元素的基础是什么以及它们在渲染时是如何创建的,我需要了解其背后的基础知识。

最佳答案

如上所述,有 document.body 可以访问正文,但代码是在正文标记出现之前执行的,这是主要问题。 Javascript 不像 css 那样以这种方式执行。

试试这个:

<html>
<head>

</head>
<body>

<script>
var body = document.body;
var para = document.createElement('p');
para.textContent = "Hello";
body.appendChild(para);
</script>
</body>
</html>

关于javascript - 为什么简单的 createElement 命令不能与 JS 一起使用并在 HTML DOM 中创建元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42891976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com