문서 객체 모델 (DOM - Document Object Model)

  • HTML과 XML 문서에 대한 API(Application Programming Interface).
  • 기본적인 문서 구조와 쿼리 인터페이스 제공.
  • 문서를 Node의 계층 구조 tree로 표현.
  • DOM Level 1이 1998년 10월 W3C 권고가 됨.
  • Internet Explorer 8 및 이전 버전을 제외한 나머지 Internet Explorer, Firefox, Safari, Chrome and Opera의 latest version은 모두 DOM을 정확히 구현.

Node의 계층 구조

Document node는 각 document를 root로 표현.
HTML page에서 document 요소는 항상 <html> element.
총 12가지의 node type을 가짐.


Node Type

DOM에서 존재하는 node type 은 모두 DOM level 1 Interface를 구현.

  • Node.ELEMENT_NODE (1)
  • Node.ATTRIBUTE_NODE (2)
  • Node.TEXT_NODE (3)
  • Node.CDATA_SECTION_NODE (4)
  • Node.ENTITY_REFERENCE_NODE (5)
  • Node.ENTITY_NODE (6)
  • Node.PROCESSING_INSTRUCTION_NODE (7)
  • Node.COMMENT_NODE (8)
  • Node.DOCUMENT_NODE (9)
  • Node.DOCUMENT_TYPE_NODE (10)
  • Node.DOCUMENT_FRAGMENT_NODE (11)
  • Node.NOTATION_NODE (12)


nodeType

// IE 9 미만에선 작동하지 않음.
if (someNode.nodeType == Node.ELEMENT_NODE) {
	alert('Node is an element.');
}
// 모든 브라우저에서 동작
if (someNode.nodeType == 1) {
	alert("Node is an element.");
}


nodeValue