일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Visual Studio Code
- 자바
- Button
- list
- Eclipse
- ArrayList
- Files
- CSS
- 테이블
- js
- 이탈리아
- Java
- json
- javascript
- 문자열
- input
- html
- 이클립스
- CMD
- Array
- Maven
- table
- date
- 자바스크립트
- windows
- string
- IntelliJ
- 인텔리제이
- 배열
- vscode
- Today
- Total
어제 오늘 내일
[Javascript] 버튼 클릭 시, 노드 복사/붙여넣기 본문
이번에는 Javascript를 사용하여
사용자가 버튼 클릭시
특정 노드를 복사하고,
그 노드를 복사하는 방법을 정리하였습니다.
cloneNode()
Javascript에서 노드를 복사할 때는 cloneNode() 라는 함수를 사용합니다.
node.cloneNode();
node.cloneNode(deep);
파라미터
- deep : optional.
- true/false 값을 넣어준다.
- 해당 노드의 자식 노드까지 복사하려면 true
- 해당 노드만 복사하려면 false
리턴값
- cloneNode
- 복사한 새로운 노드를 리턴한다.
노드 복사하기 - cloneNode()
<div id='test' class='red-border'>
<div> 만나서 반가워요 </div>
</div>
<input
type='button'
value='복사하기'
onclick='copyDiv()'
/>
.red-border {
border : 1px solid red;
height : 1em;
}
function copyDiv() {
// 'test' node 선택
const testDiv = document.getElementById('test');
// 노드 복사하기
const newNode = testDiv.cloneNode();
// 복사된 Node id 변경하기
newNode.id = 'copyNode';
// 복사한 노드 붙여넣기
testDiv.after(newNode);
}
위 예제는
'복사하기' 버튼을 클릭할 때마다
'test' div를 복사하고,
복사한 div의 id를 변경하여
'test' div 아래에 붙여넣기 하고 있습니다.
그런데, '복사하기' 버튼을 클릭하면
div 안의 글자는 복사, 붙여넣기 되지 않고,
div (빨간 테두리를 가지는 div)만 복사되고 있는 것을 확인할 수 있습니다.
const newNode = testDiv.cloneNode();
그것은 cloneNode()에 true 파라미터를 전달하지 않았기 때문에
자식 node들은 복사하지 않고,
자기 자신 node인 'test' 노드만 복사하고 있기 때문입니다.
자식 노드까지 복사해서 붙여넣기 하는 방법을
다음 예제에서 소개하겠습니다.
노드 복사하기 - cloneNode(true)
<div id='test' class='red-border'>
<div> 만나서 반가워요 </div>
</div>
<input
type='button'
value='복사하기'
onclick='copyDiv()'
/>
.red-border {
border : 1px solid red;
height : 1em;
}
function copyDiv() {
// 'test' node 선택
const testDiv = document.getElementById('test');
// 노드 복사하기
const newNode = testDiv.cloneNode(true);
// 복사된 Node id 변경하기
newNode.id = 'copyNode';
// 복사한 노드 붙여넣기
testDiv.after(newNode);
}
const newNode = testDiv.cloneNode(true);
이번에는 파라미터로 true를 전달하였습니다.
'test' 노드의 child 노드인 텍스트까지 모두 복사되어 붙여넣기 되는 것을 확인 할 수 있습니다.
Javascript에서 cloneNode() 함수를 사용하여
node를 찾아서 복사하고, 붙여넣기 하는 방법을 알아보았습니다.
'IT > Javascript' 카테고리의 다른 글
[Javascript] localStorage 만료 시간 설정하기 (0) | 2022.03.07 |
---|---|
[Javascript] localStorage 사용법 (읽기, 쓰기, 삭제, 키목록 등) (1) | 2022.03.07 |
[Javascript] 함수 반복적으로 실행하기, 종료하기 (setInterval(), clearInterval()) (0) | 2022.03.06 |
[Javascript] 객체(object) 내용 출력하기 [object Object] (1) | 2022.03.05 |
[HTML/Javascript] div에 링크 걸기 (0) | 2022.02.27 |