dom_dom0400_010

既存要素を複製して挿入したい場合、深い複製はnode.( A )(true)で行い、複製結果を親の所定位置へはparent.( B )(clone, reference)で挿入できる。

解答

A: cloneNode
B: insertBefore

解説

cloneNode(true)は子孫までコピー、falseは浅い複製。挿入位置を制御したいときはinsertBeforeで参照ノードの直前に置く。

使用例(サンプルコード)

[ html ]

<ul id="menu">
  <li>Home</li><li id="ref">About</li>
</ul>
<script>
  const ref = document.getElementById('ref');
  const clone = ref.cloneNode(true);
  clone.textContent = 'About (copy)';
  ref.parentNode.insertBefore(clone, ref);
</script>