- 0
- 2
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일
오오 ~~ :) 너무 글 좋네용