DOM - Node 조작
해당 Post는 DOM Node 조작하기에 대해 정리한 파일입니다.
DOM, 즉 HTML은 동적으로 다양하게 변경될 수 있습니다.
DOM APIs에서는 다양한 메서드와 속성을 지원하고 있으니 이를 활용하는 방법을 배울 필요가 있습니다.
이제 부터 배울 다양한 DOM API는 라이브러리를 쓰는 것보다 대체로 더 빠릅니다.( 그 차이가 크진 않습니다)
물론 라이브러리보다 그 사용법이 불편하고 어려울 수는 있습니다.
하지만 low-level의 DOM API를 이해한다면, 라이브러리나 프레임워크를 사용하면서도 그 동작을 이해하고 유추하기가 쉽고
어떤 문제를 해결할때도 더 유리할 것입니다.
1. DOM 조작하기 API
documet. 으로 사용할 수 있는 APIs
Link : 링크 타고가기
자주 사용하는 것 몇가지만 뽑아서 예를 들자면?
* addEventListener() : Attaches an event handler to the document(문서에 이벤트 핸들러 연결)
* createAttribute() Creates an attribute node(특성 노드 생성)
* createComment() Creates a Comment node with the specified text(지정된 텍스트로 주석 노드 생성)
* createDocumentFragment() Creates an empty DocumentFragment node(빈 DocumentFragment 노드 생성)
* createElement() Creates an Element node(요소 노드 생성)
* createEvent() Creates a new event(새 이벤트 만들기)
* getElementById() Returns the element that has the ID attribute with the specified value(지정한 값을 가진 ID 속성을 가진 요소를 반환함)
* getElementsByClassName() Returns a HTMLCollection containing all elements with the specified class name(지정된 클래스 이름을 가진 모든 요소를 포함하는 HTMLCollection 반환)
* getElementsByName() Returns a HTMLCollection containing all elements with a specified name(지정된 이름의 모든 요소를 포함하는 HTMLCollection 반환)
* getElementsByTagName() Returns a HTMLCollection containing all elements with the specified tag name(지정된 태그 이름을 가진 모든 요소를 포함하는 HTMLCollection 반환)
element. 으로 사용할 수 있는 APIs
Link : 링크 타고가기
element의 API들은 Document보다 더 많습니다.
2. DOM 엘리먼트 오브젝트
몇 가지 유용 DOM 엘리먼트 속성
- tagName : 엘리먼트의 태그명 반환
- textContent : 노드의 텍스트 내용을 설정하거나 반환
- nodeType : 노드의 노드 유형을 숫자로 반환
DOM 탐색 속성
*childNodes 엘리먼트의 자식 노드의 노드 리스트 반환(텍스트 노드, 주석 노드 포함)
- firstChild 엘리먼트의 첫 번째 자식 노드를 반환
- firstElementChild 첫 번째 자식 엘리먼트를 반환
- parentElement 엘리먼트의 부모 엘리먼트 반환
- nextSibling 동일한 노드 트리 레벨에서 다음 노드를 반환
- nextElementSibling 동일한 노드 트리 레벨에서 다음 엘리먼트 반환
DOM 조작 메소드
-
removeChild() 엘리먼트의 자식 노드 제거
-
appendChild() 마지막 자식 노드로 자식 노드를 엘리먼트에 추가
-
insertBefore() 기존 자식노드 앞에 새 자식 노드를 추가
-
cloneNode() 노드를 복제
-
replaceChild() 엘리먼트의 자식 노드 바꿈
-
closest() 상위로 올라가면서 가장 가까운 엘리먼트를 반환
HTML을 문자열로 처리해주는 DOM 속성 / 메소드
-
innerText 지정된 노드와 모든 자손의 텍스트 내용을 설정하거나 반환
-
innerHTML 지정된 엘리먼트의 내부 html을 설정하거나 반환
-
insertAdjacentHTML() HTML로 텍스트를 지정된 위치에 삽입