카테고리 없음
`cloneNode`메서드
개발_자
2024. 7. 18. 14:24
`cloneNode`
JS에서 DOM 노드를 복제하는 메서드
복제본은 DOM 트리의 다른 위치에 삽입 가능하며,
원래 노드의 구조와 속성 그대로 유지함
두 가지 모드 지원 : 얕은 복사(shallow clone), 깊은 복사(deep clone)
기본 사용법
const clone = orginalNode.cloneNode(deep);
`orignalNode` : 복제할 원래 노드
`deep` : 불리언 값. `true`이면 깊은 복사, `false`이면 얕은 복사 (기본값은 `false`)
<얕은 복사>
const shallowClone = originalNode.cloneNode(false);
복제할 노드 자체만 복사하고, 그 하위 노드(자식 요소)는 복사하지 않음
<html>
<div id="original">
<p>Child paragraph</p>
</div>
<js>
const originalNode = document.getElementById('original');
const shallowClone = originalNode.cloneNode(false);
document.body.appendChild(shallowClone);
<결과>
<div id="original">
<p>Child paragraph</p>
</div>
<div id="original"></div>
<깊은 복사>
const deepClone = originalNode.cloneNode(true);
노드와 그 하위 노드 모두를 복사
<html>
<div id="original">
<p>Child paragraph</p>
</div>
<js>
const originalNode = document.getElementById('original');
const deepClone = originalNode.cloneNode(true);
document.body.appendChild(deepClone);
<결과>
<div id="original">
<p>Child paragraph</p>
</div>
<div id="original">
<p>Child paragraph</p>
</div>