본문 바로가기
JavaScript

[JavaScript] DOM(문서 객체 모델)

by cogito30 2025. 4. 6.
반응형

Reference

- [TCP School] 문서 객체 모델

- [MDN] 문서 객체 모델

- [ModernJS]  브라우저: 문제, 이벤트, 인터페이스(브라우저 환경과 다양한 명세서)

 

 

- DOM(Document Object Model): XML이나 HTML 문서에 접근하기 위한 일종의 인터페이스. W3C의 표준 객체 모델로 계층 구조로 표현됨

- DOM 종류: Core DOM / HTML DOM / XML DOM

- Document 객체: 웹 페이지 자체를 의미

- HTML DOM은 Node라고 불리는 계층적 단위에 정보 저장

- HTML 문서의 모든 것은 Node

node tree

 

 

(Document 메서드)

더보기
메서드 설명
document.getElementsByTagName(tag_name) 해당 태그 이름의 요소를 모두 선택
document.getElementById(id_name) 해당 아이디의 요소를 선택
document.getElementsByClassName(class_name) 해당 클래스에 속한 요소를 모두 선택
document.getElementsByName(name_attr_value) 해당 name 속성값을 가지는 요소를 모두 선택
document.querySelector(selector_name) 해당 name 속성값을 가지는 요소를 모두 선택
document.querySelectorAll(selector_name) 해당 선택자로 선택되는 요소를 모두 선택
document.createElement(tag_name) 지정된 HTML 요소 생성
document.write(text) HTML 출력 스트림을 통해 텍스트를 출력
 

(HTML DOM의 객체 집합)

더보기
객체 집합 설명 DOM
Level
document.anchors name 속성을 가지는 <a>요소를 모두 반환함. 1
document.applets applet 요소를 모두 반환함. (HTML5에서 제외됨) 1
document.body <body>요소를 반환함. 1
document.cookie HTML 문서의 쿠키(cookie)를 반환함. 1
document.domain HTML 문서가 위치한 서버의 도메인 네임(domain name)을 반환함. 1
document.forms <form>요소를 모두 반환함. 1
document.images <img>요소를 모두 반환함. 1
document.links href 속성을 가지는 <area>요소와 <a>요소를 모두 반환함. 1
document.referrer 링크(linking)되어 있는 문서의 URI를 반환함. 1
document.title <title>요소를 반환함. 1
document.URL HTML 문서의 완전한 URL 주소를 반환함. 1
document.baseURI HTML 문서의 절대 URI(absolute base URI)를 반환함. 3
document.doctype HTML 문서의 문서 타입(doctype)을 반환함. 3
document.documentElement <html>요소를 반환함. 3
document.documentMode 웹 브라우저가 사용하고 있는 모드를 반환함. 3
document.documentURI HTML 문서의 URI를 반환함. 3
document.domConfig HTML DOM 설정을 반환함. (더는 사용하지 않음) 3
document.embeds <embed>요소를 모두 반환함. 3
document.head <head>요소를 반환함. 3
document.implementation HTML DOM 구현(implementation)을 반환함. 3
document.inputEncoding HTML 문서의 문자 인코딩(character set) 형식을 반환함. 3
document.lastModified HTML 문서의 마지막 갱신 날짜 및 시간을 반환함 3
document.readyState HTML 문서의 로딩 상태(loading status)를 반환함. 3
document.scripts <script>요소를 모두 반환함. 3
document.strictErrorChecking 오류의 강제 검사 여부를 반환함. 3

 

node tree

 

(Node 종류)

더보기
노드 설명
문서 노드(document node) HTML 문서 전체를 나타내는 노드임.
요소 노드(element node) 모든 HTML 요소는 요소 노드이며, 속성 노드를 가질 수 있는 유일한 노드임.
속성 노드(attribute node) 모든 HTML 요소의 속성은 속성 노드이며, 요소 노드에 관한 정보를 가지고 있음.
하지만 해당 요소 노드의 자식 노드(child node)에는 포함되지 않음.
텍스트 노드(text node) HTML 문서의 모든 텍스트는 텍스트 노드임.
주석 노드(comment node) HTML 문서의 모든 주석은 주석 노드임.

 

(노드 접근)

- 노드 관계: parentNode/childNodes/firstChild/lastChild/nextSibling/previousSibling

- 노드 정보: nodeName/nodeValue/nodeType

더보기

nodeName

- 해당 HTML 요소의 태그 이름을 대문자로 저장

노드 프로퍼티값
문서 노드(document node) #document
요소 노드(element node) 태그 이름 (영문자로 대문자)
속성 노드(attribute node) 속성 이름
텍스트 노드(text node) #text

nodeValue

- 노드의 값

노드 프로퍼티 값
요소 노드(element node) undefined
속성 노드(attribute node) 해당 속성의 속성값
텍스트 노드(text node) 해당 텍스트 문자열

 nodeType

노드 프로퍼티값
요소 노드(element node) 1
속성 노드(attribute node) 2
텍스트 노드(text node) 3
주석 노드(comment node) 8
문서 노드(document node) 9

(노드 관리)

- 노드 추가: appendChild(요소)/insertBefore(새로운자식노드, 기준자식노드)/insertData(오프셋, 새로운데이터)

- 노드 생성: createElement(태그명)/createAttribute(속성명)/createTextNode(텍스트)

- setAttributeNode(속성노드)/appendChild(텍스트노드)

- 노드 제거: removeChild(노드)/removeAttribute(속성명)

- 노드 복사: cloneNode(자식보드 복제여부)

 

(노드 조작)

- 변경: nodeValue/setAttribute(속성, 값)

- 교체: replaceChild(새로운자식노드, 기존자식노드)/replaceData(오프셋, 교체할 문자 수, 새로운 데이터)

반응형

'JavaScript' 카테고리의 다른 글

[JavaScript] JavaScript 주요 메서드 1  (0) 2025.04.04
[JavaScript] JavaScript 기본 문법  (0) 2025.04.04
[JavaScript] BOM(브라우저 객체 모델)  (1) 2025.03.06
[JavaScript] 태그 속성값 제어  (1) 2025.03.06
[JavaScript] DOM  (1) 2025.03.06