• 0
  • 2
February 17, 2025

Node와 Element의 차이점

답변 확인

  • Node와 Element는 DOM(Document Object Model) 에서 HTML 문서를 구성하는 중요한 개념
  • 두 개념은 서로 관련이 있지만, Element는 Node의 특정 타입 중 하나라는 점에서 차이

1. Node란?

  • Node(노드) 는 DOM을 구성하는 가장 기본적인 단위
  • HTML 문서의 모든 구성 요소(태그, 텍스트, 속성, 주석 등)를 포함하는 포괄적인 개념

✅ Node의 주요 타입

Node 타입 설명
Document Node 문서 전체를 나타내는 루트 노드 (ex: document)
Element Node HTML 태그를 나타내는 노드 (ex: <div>, <p>)
Text Node 요소 내부의 텍스트 (ex: "Hello World")
Comment Node 주석을 나타내는 노드 (ex: <!-- 주석 -->)

📌 즉, Node는 HTML 문서의 모든 요소를 포함하는 가장 상위 개념

2. Element란?

  • Element(요소) 는 Node의 한 종류로, HTML 태그(<div>, <p>, <h1> 등)를 의미하는 특수한 타입

  • Element는 HTML 속성(id, class, style 등)을 가질 수 있으며, querySelector(), getElementsByClassName() 같은 메서드를 사용할 수 있음

  • 📌 모든 Element는 Node이지만, 모든 Node가 Element는 아니다

  • Element는 오직 HTML 태그(<div>, <span>, <img>등)만 포함하며, 텍스트, 속성, 주석은 포함되지 않음

3.Node와 Element의 차이점

💡 예제 코드

<div id="container">
  Hello
  <!-- 주석 -->
  World
</div>

위 HTML 구조에서:

  • <div> 태그는 Element Node이면서 Node입니다.
  • "Hello""World"는 Text Node입니다.
  • <!-- 주석 -->은 Comment Node입니다.

📌 즉, div는 Element이자 Node이지만, 텍스트와 주석은 Node이지만 Element가 아님

✅ Node vs Element 비교

구분 Node Element
정의 HTML 문서의 모든 개체를 포함하는 개념 HTML 태그(<div>, <p> 등)만 포함
포함 범위 요소, 텍스트, 속성, 주석 등 모든 DOM 개체 HTML 요소(<div>, <span> 등)만 포함
예시 <div>, "텍스트", <!-- 주석 --> <div>, <p>, <h1>
HTML 속성 textContent 사용 가능 innerHTML, classList, id 사용 가능

4. Node와 Element의 차이를 보여주는 속성

1️⃣ textContent vs innerHTML

const div = document.getElementById('container');
 
console.log(div.textContent); // "Hello World" (모든 Node에서 사용 가능)
console.log(div.innerHTML); // "Hello <!-- 주석 --> World" (Element에서만 사용 가능)
  • textContent: Node의 속성이므로 모든 Node에서 사용 가능
  • innerHTML: Element의 속성이므로 Element에서만 사용 가능

2️⃣ childNodes vs children

console.log(div.childNodes); // NodeList(3) [text, comment, text]
console.log(div.children); // HTMLCollection [div]
  • childNodes: 모든 자식 Node(텍스트, 주석 포함) 반환
  • children: Element만 포함하는 HTMLCollection 반환 (텍스트, 주석 제외)

🔹 결론

  • ✔ Node는 HTML 문서의 모든 개체(태그, 텍스트, 속성, 주석 등)를 포함하는 가장 큰 개념
  • ✔ Element는 Node 중에서도 HTML 태그(<div>, <p> 등)만 포함하는 특정 개념
  • ✔ 모든 Element는 Node이지만, 모든 Node가 Element는 아니다!
  • Node는 textContent, childNodes 등을 사용할 수 있지만, Element에서만 innerHTML, children을 사용할 수 있음

참고 자료

Top comments (2)

  • DavidYang2월 19일

    우와 댓글이다~

  • Olivia2월 19일

    오오 ~~ :) 너무 글 좋네용