javascript - 为什么我不能将克隆的元素附加到另一个父元素?

标签 javascript

我有两个 div:

<div id='div1'>
  <span>text</span>
</div>

<div id='div2'>
</div>

我正在尝试将跨度从 div1 移动到 div2:

  var div1 = document.querySelector('#div1');
  var div2 = document.querySelector('#div2');

  //cloning span
  var span = div1.firstElementChild.cloneNode();
  //removing span from the first div
  div1.removeChild(div1.firstElementChild);
  //trying to append new span to the second div but nothing happens
  div2.appendChild(span);

span 元素已删除,但未插入到第二个 div 中。

我错过了什么吗?

最佳答案

你想要一个深拷贝。 cloneNode接受一个可选参数

 var span = div1.firstElementChild.cloneNode(true);

(here is a fiddle)

虽然根据新规范,deep 默认为 true,但在 chrome 和 safari 中,它默认为 false。

关于javascript - 为什么我不能将克隆的元素附加到另一个父元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16697879/

相关文章:

javascript - 为什么当浏览器控制台未打开时 require 会导致 Internet Explorer 9 超时?

javascript - 在循环中每收到第 10 个数据包运行函数

javascript - Map 或 flatmap 的工作方式类似于 Javascript 中的 Array.prototype.join

javascript - 在 AngularJS 中使用嵌套 ng-repeat 时仅显示 "No result"一次

javascript - 错误 :InvalidValueError: setCenter: not a LatLng or LatLngLiteral: in property lat: not a number

javascript - 错误 : '[Vue warn]: Failed to resolve directive: in testing

javascript - 编写 For 循环来计算阶乘

javascript - 通过远程网站读取智能手机传感器数据

javascript - 如何将我的 json 数据加载到 html 表中并使用纯 Javascript 将行设置为单选按钮?

javascript - 无法成功让嵌套的 javascript .map 传递复杂的输出 [{key, [{obj}, .. ]}, ..]