You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让JavaScript多次向HTML文档输出内容?

问题解决:重复添加DOM元素仅显示一次的原因及修复方法

你遇到的问题核心是DOM元素在文档树中只能存在一个位置。你的代码里只创建了一个<div>实例(added),第一次append是把它加入body,第二次append其实是将这个元素从当前位置移动到body末尾,并非复制,所以页面只会显示一次内容。

以下是几种修复方案:

方案1:重复创建新元素实例

直接两次执行创建元素的逻辑,生成独立的DOM元素:

var a = "asd";

// 第一次添加
let added1 = document.createElement("div");
let addedP1 = document.createElement("p");
addedP1.innerText = a;
added1.append(addedP1);
document.body.append(added1);

// 第二次添加
let added2 = document.createElement("div");
let addedP2 = document.createElement("p");
addedP2.innerText = a;
added2.append(addedP2);
document.body.append(added2);

方案2:克隆已有元素

使用cloneNode(true)深度克隆元素(参数true表示同时克隆子元素):

var a = "asd";
let added = document.createElement("div");
let addedP = document.createElement("p");
addedP.innerText = a;
added.append(addedP);

document.body.append(added);
// 克隆并添加副本
let addedClone = added.cloneNode(true);
document.body.append(addedClone);

方案3:封装函数复用逻辑

把创建元素的代码封装成函数,调用两次即可:

function addContent() {
  const text = "asd";
  const container = document.createElement("div");
  const paragraph = document.createElement("p");
  paragraph.innerText = text;
  container.append(paragraph);
  document.body.append(container);
}

// 调用两次生成两个元素
addContent();
addContent();

内容的提问来源于stack exchange,提问作者gm76

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:45:30