gpt4 book ai didi

JavaScript:将相同的文本附加到 HTML 中的多个标记

转载 作者:行者123 更新时间:2023-11-29 23:57:13 25 4
gpt4 key购买 nike

我是 JS 的学习者,在学习时我试图在 html 的多个标签中附加相同的文本。例如,如果我有一个 "h1" 标签,我想将其插入到多个 html 标签中,例如 header,section,article,p 等。

我想通过 JS 来做,但是在这样做的时候,如果我在多个标签中附加两个不同的文本,它工作正常,可以通过单击 Button 2 带有 color:red 的文本被附加到带有 id="output"的 p 标签中,其他文本被添加到带有 id="output2"的 p 标签中

但是在单击按钮 1 时,我在两个 p 标签中附加了相同的文本,但它只附加到 ID 为 ="output2"的 p 标签 .

这是什么原因?

注意:

虽然我说我想附加文本,但我最初的想法是完全通过 JS 来完成,这就是为什么我创建元素,然后创建文本节点,然后在 HTML 中附加它

function temp() {
var h1 = document.createElement("h1");
var text = document.createTextNode("Heading 1");
h1.appendChild(text);

var h2 = document.createElement("h2");
var text2 = document.createTextNode("Heading 2");
h2.appendChild(text2);

document.getElementById("output").appendChild(h1);
document.getElementById("output2").appendChild(h2);
}

function main() {
var h1 = document.createElement("h1");
var text = document.createTextNode("Heading 1");
h1.appendChild(text);

document.getElementById("output").appendChild(h1);
document.getElementById("output2").appendChild(h1);
}
<!DOCTYPE html>
<html>
<head>
<style>
#output {
color: red;
}
</style>
</head>
<title>
XYZ
</title>

<body>
<button onclick="main()">Button 1</button>
<button onclick="temp()">Button 2</button>
<p id="output">

</p>
<p id="output2">

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

最佳答案

这是因为在 main 函数中第二次调用 appendchild() 将元素从第一个 p 元素移动到第二个 p 元素。

这段代码

var h1 = document.createElement("h1");
var text = document.createTextNode("Heading 1");
h1.appendChild(text);

document.getElementById("output").appendChild(h1);
document.getElementById("output2").appendChild(h1);

首先在输出 p 元素中添加 h1,下一行将此 h1 元素移动到输出 2 p 元素。

您可以通过注释掉第二行来确认这一点,您将看到标题 1 为红色文本,它告诉您 h1 是首先添加到此 p 元素上的。

在此处查看文档以了解更多信息

https://developer.mozilla.org/en/docs/Web/API/Node/appendChild

您需要创建 2 个节点才能获得所需的结果。

function temp() {
var h1 = document.createElement("h1");
var text = document.createTextNode("Heading 1");
h1.appendChild(text);
var h2 = document.createElement("h2");
var text2 = document.createTextNode("Heading 2");
h2.appendChild(text2);
document.getElementById("output").appendChild(h1);
document.getElementById("output2").appendChild(h2);
}

function main() {
var h1 = document.createElement("h1");
var text = document.createTextNode("Heading 1");
h1.appendChild(text);
document.getElementById("output").appendChild(h1);

var h2 = document.createElement("h2");
var text = document.createTextNode("Heading 2");
h2.appendChild(text);

document.getElementById("output").appendChild(h1);
document.getElementById("output2").appendChild(h2);

}
<!DOCTYPE html>
<html>
<head>
<style>
#output {
color: red;
}
</style>
</head>
<title>
XYZ
</title>

<body>
<button onclick="main()">Button 1</button>
<button onclick="temp()">Button 2</button>
<p id="output">

</p>
<p id="output2">

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

关于JavaScript:将相同的文本附加到 HTML 中的多个标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41333332/

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