DOM(Document Object Model)
이란?DOM(Document Object Model) 은 HTML 문서의 구조화된 표현을 제공하는 API이다.
DOM(Document Object Model) 은 메모리에 웹 페이지 문서 구조를 표현함으로써 스크립트 및 프로그래밍 언어와 페이지를 연결한다.
JavaScript
와 DOM(Document Object Model)
은 다른 개념.DOM 은 자바스크립트 없이 DOM 인터페이스 구현만으로도 DOM 을 조작할 수 있기 때문이다.
DOM 은 어떤 프로그래밍 언어에 의존하지 않는 독립적인 인터페이스라는 것이다.
이렇기 때문에 DOM 은 꼭 자바스크립트로만 구현 되는 것도 아니다. 다른 프로그래밍 언어인 JAVA
로도 구현할 수 있으며, C#
으로도 구현할 수 있다.
DOM(Document Object Model)
의 구조. 잘 구조화된 문서는 DOM을 사용하여 트리 구조를 얻어낼 수 있다.
위 사진이 그 예시이다.
<!DOCTYPE html>
<html>
<head>
<title>Sample Page</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is a sample paragraph.</p>
</body>
</html>
//위 HTML 코드의 DOM 구조
- document
- html
- head
- title
- body
- h1
- p
DOM 구조를 볼 수 있는 console.dir(
object
)
console.dir(object
) 를 사용하면JavaScript
객체의 계층적인 목록을 볼 수있다.
초반에 배우는 여러 메서드들을 배우면 "이걸 어떻게 활용하지?" 할 수 있으나 나중에 속성
이나 스타일
을 조작하고 html
요소를 넣는 부분을 보면 활용성이 뛰어나다는 것을 느낄 것이다.
document.getElementById() 메서드
는 주어진 문자열과 일치하는 id
속성 을 가진 요소를 찾고, 이를 나타내는 Element 객체를 반환한다.
document.getElementById(id);
getElementsByTagName 메서드
는 HTML 문서에서 특정 태그 이름
을 가진 모든 요소를 찾고, 해당 요소들을 포함하는 HTMLCollection 객체를 반환하는 DOM 메서드이다.
document.getElementsByTagName(tagName);
getElementsByClassName 메서드
는 HTML 문서에서 특정 클래스 이름
을 가진 모든 요소를 찾고, 해당 요소들을 포함하는 HTMLCollection 객체를 반환하는 DOM 메서드이다.
document.getElementsByClassName(classNames);
querySelector 메서드
는 주어진 CSS 선택자에 맞는 첫 번째 요소(Element)
를 반환하는 DOM 메서드이다. 이 메서드는 CSS 선택자 문법을 사용하여 요소를 선택할 수 있어서 매우 유연하다.
var element = document.querySelector(selector);
querySelectorAll 메서드
는 주어진 CSS 선택자에 맞는 모든 요소를 찾아 NodeList 객체로 반환하는 DOM 메서드이다. NodeList는 배열과 유사한 객체로, 일치하는 모든 요소
를 반환한다.
var elements = document.querySelectorAll(selector);
서로는 반환값에서 가장 큰 차이가 있다.
getElementsByClassName의()
는 HTMLCollection을 반환하고 querySelectorAll()
는 NodeList를 반환한다.
속성
이나 스타일
을 조작하고 html
요소를 넣는 부분은 DOM - 2 에서 설명한다.