티스토리 뷰

이론/JS

[JS] DOM의 Node 생성, 삽입, 삭제

millfeel1298 2021. 2. 8. 20:04

Node 생성하기

메서드 설명
Document.createElement(tagName) 지정한 tagName의 HTML 요소를 만들어 반환한다.
Document.createTextNode(data); - 새 텍스트 노드를 만든다.
- 문자열은 이스케이프 처리된다.

*생성한 Node를 다른 곳으로 옮길 때, 기존에 있던 Node를 지울 필요가 없다.

 모든 Node 삽입 메서드는 자동으로 기존에 있던 Node를 삭제하고, 새로운 곳으로 Node를 옮기기 때문이다.

 

*이스케이브 처리가 된다?

 사용한 문자열이 HTML이 아닌 문자열로 처리 돼, 태그처리가 안되는 것

document.body.textContent = '<p>textContent</p>'; // 문자열 그대로 출력 ---- 이스케이프 처리 됨
document.body.innerHTML = '<p>innerHTML</p>'; // 태그화 돼서 출력--------- 이스케이프 처리 안됨 

Node 삽입하기 1

메서드 설명
ChildNode.before(Node or DOMString) 선택한 요소의 앞에 삽입
ParentNode.prepend(Node or DOMString) 선택한 요소의 첫번째 자식으로 삽입
ParentNode.append(Node or DOMString) 선택한 요소의 마지막 자식으로 삽입
ChildNode.after(Node or DOMString) 선택한 요소의 뒤에 삽입
ChildNode.replaceWith(Node or DOMString) 선택한 요소를 삭제하고 삽입

*여러 개의 요소를 한꺼번에 넣을 수 있다.

*주의: 문자열을 사용할 때 HTML이 아닌 문자열 형태로 삽입된다. (elem.textContent를 사용한 것처럼)

Node 삽입하기 2

메서드 설명
Element.insertAdjacentHTML(position, text) - document.createElement를 사용해 별도의 요소를 만들어
  줄 필요가 없다.
- text는 HTML형태로 삽입
Element.insertAdjacentElement(position, element) - document.createElement로 요소를 만들어줘야 한다.
- text는 HTML형태로 삽입
Element.insertAdjacentElement(position, element) - text는 문자열 형태로 삽입
공통 설명 [position]
- beforebegin: 선택한 요소의 앞에 삽입
- afterbegin: 선택한 요소의 첫번째 자식으로 삽입
- beforeend: 선택한 요소의 마지막 자식으로 삽입
- afterend: 선택한 요소의 뒤에 삽입

*한번에 하나의 요소를 넣을 수 있다.


Node 삭제하기

메서드 설명
ChildNode.remove() 선택한 요소를 삭제

[Node 생성 예제]

See the Pen [JS] Node 생성하기 by mill (@millfeel) on CodePen.

 

[Node 삽입 예제 1]

See the Pen [JS] Node 삽입하기 by mill (@millfeel) on CodePen.

 

[Node 삽입 예제 2]

See the Pen [JS] Node 삽입하기 2 by mill (@millfeel) on CodePen.

 

[Node 삭제 예제]

See the Pen [JS] Node 삭제하기 by mill (@millfeel) on CodePen.


[공부 좌표]

문서 수정하기

Document.createElement()

Document.createTextNode()

ChildNode.before()

ParentNode.prepend()

ParentNode.append()

ChildNode.after()

ChildNode.replaceWith()

Element.insertAdjacentHTML()

Element.insertAdjacentElement()

Element.insertAdjacentText()

ChildNode.remove()

'이론 > JS' 카테고리의 다른 글

[JS] 객체의 종류  (0) 2021.02.09
[JS] 배열의 추가, 삭제  (0) 2021.02.08
[JS] Image()  (0) 2021.02.08
[JS] 함수 - 전역 변수, 지역 변수  (0) 2021.02.05
[JS] 연산 속도 체크 - Console.time() / Console.timeEnd()  (0) 2021.02.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 29 30 31
글 보관함