DOM(Document Object Model)이란?

HTML 문서의 계층적 구조와 정보를 표현하며 이를 제어할 수 있는 API, 즉 프로퍼티와 메서드를 제공하는 트리 자료구조.

<aside>

즉, DOM은 HTML 문서를 트리 구조로 표현해서, 자바스크립트로 그 내용을 읽고 바꾸고 제어할 수 있게 해주는 도구이다.

</aside>

39.1 노드

39.1.1 HTML 요소와 노드 객체

<aside>

<aside>

html 요소의 구조

html 요소의 구조

<aside>

html 요소와 노드 객체

html 요소와 노드 객체

트리 자료구조

<aside>

image.png

39.1.2 노드 객체의 타입

// HTML 문서를 렌더링 엔진이 파싱한다고 가정
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="style.css"
  </head>
  <body>
    <ul>
      <li id="apple">Apple</li>
      <li id="banana">Banana</li>
      <li id="orange">Orange</li>
    </ul>
    <script src="app.js"></script>
  </body>
</html>

<aside>

렌더링 엔진은 위 HTML 문서를 파싱하여 다음과 같이 DOM을 생성한다.

image.png

</aside>

<aside>

DOM은 노드 객체의 계층적인 구조로 구성된다. 노드 객체는 종류가 있고 상속 구조를 갖는다. 노드 객체는 총 12개의 종류가 있다. 이 중에서 중요한 노드 타입 4가지를 알아보자. (나머지는 39.6.4절에서 살펴보자)

</aside>

1. 문서노드

<aside>

2. 요소 노드

<aside>

3. 어트리뷰트 노드

<aside>