November 29, 2021
DOM 노드에 대해 좀 더 알아봅시다.
이번 챕터에선 DOM 노드란 무엇인지, DOM 노드의 주요 프로퍼티는 무엇이 있는지 학습하겠습니다.
각 클래스는 다음과 같은 특징을 지닙니다.
parentNode
, nextSibling
, childNodes
등의 주요 트리 탐색 기능을 제공합니다. Node
클래스의 객체는 절대 생성되지 않습니다. 하지만 이 클래스를 상속받는 클래스는 여럿 있습니다. 텍스트 노드를 위한 Text
클래스와 요소 노드를 위한 Element
클래스, 주석 노드를 위한 Comment
클래스는 Node
클래스를 상속받습니다.nextElementSibling
, children
이나 getElementsByTagName
, querySelector
같이 요소 전용 탐색을 도와주는 프로퍼티나 메서드가 이를 기반으로 합니다. 브라우저는 HTML뿐만 아니라 XML, SVG도 지원하는데 Element
클래스는 이와 관련된 SVGElement
, XMLElement
, HTMLElement
클래스의 베이스 역할을 합니다.HTMLElement
를 상속받습니다.
<input>
요소에 대응하는 클래스<body>
요소에 대응하는 클래스<a>
요소에 대응하는 클래스innerHTML 프로퍼티를 사용하면 요소 안의 HTML을 문자열 형태로 받아올 수 있습니다.
요소 안 HTML을 수정하는 것도 가능합니다. innerHTML은 페이지를 수정하는 데 쓰이는 강력한 방법의 하나입니다.
document.body
안의 내용을 출력하고 완전히 바꾸는 예시를 살펴봅시다.
즉, innerHTML+=
는 아래와 같은 일을 합니다.
기존 내용이 '완전히 삭제’된 후 밑바닥부터 다시 내용이 쓰여지기 때문에 이미지 등의 리소스 전부가 다시 로딩됩니다.