javascript - 如何将新元素附加到两个不同的位置 JavaScript ES6

标签 javascript ecmascript-6

我的目标是将新元素附加到两个不同的位置。我有两个 div,ID 为 div1 和 div2。我想将新创建的 span 元素附加到两个 div。

document.querySelector('#div1').appendChild(span);

这工作正常,但问题是这样的

document.querySelector('#div2').appendChild(span);

当运行第二个 appendChild 时,它会从 div1 中删除跨度。如何将 span 元素添加到这两个位置?

(为了可视化执行,我添加了 setTimeout)

const span = document.createElement('span');
span.appendChild(document.createTextNode('Test'));

document.querySelector('#div1').appendChild(span);
setTimeout(() => {
  document.querySelector('#div2').appendChild(span);
}, 3000)
#div1 {
  padding: 3px;
  background: red;
}

#div2 {
  padding: 3px;
  background: green;
}
<div id="div1"></div>
<div id="div2"></div>

最佳答案

在现有跨度上使用cloneNode方法:

更多信息:

https://developer.mozilla.org/en-US/docs/Web/API/Node/cloneNode

const span = document.createElement('span');
span.appendChild(document.createTextNode('Test'));

document.querySelector('#div1').appendChild(span);
setTimeout(() => {
  document.querySelector('#div2').appendChild(span.cloneNode(true));
}, 3000)
#div1 {
  padding: 3px;
  background: red;
}

#div2 {
  padding: 3px;
  background: green;
}
<div id="div1"></div>
<div id="div2"></div>

关于javascript - 如何将新元素附加到两个不同的位置 JavaScript ES6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53157557/

相关文章:

javascript - JQuery(document).ready 不在页面上评估,但在文件中时执行

javascript - jQuery - 将 JavaScript 附加到 Div

javascript - 如何使用 HTML 图像请求将数据发送到服务器,或返回数据作为响应

javascript - Angular 1.5.4 服务未定义

javascript - d3.js:从父节点向子节点传递数据onclick事件

javascript - 如果其他元素存在,则 jQuery 切换元素

javascript - 规范中的 "LexicalEnvironment"和 "VariableEnvironment"有什么区别

javascript - Aureliajs 在 App Constructor 上等待数据

javascript - 他出现后我怎样才能得到div?

javascript - webpack 从多个入口文件导出类