JS - DOM


Vue.js 나 React.js 등의 프레임워크을 통해 js 에 접하게 되면 개인적인 생각에 DOM 객체를 사용할 일이 많지 않은 것 같다.
그런 의미에서 DOM(Document Object Model)에 대해 간단하게 정리해보려한다.

DOM

웹 페이지 내의 모든 콘텐츠를 표현하는 객체이다. document 라는 객체를 통해 기본적인 접근이 가능하다.
태그로 만들어진 요소만을 생각 할 수 있는데 이는 요소 노드(Element node) 문자만 적혀 있을 경우 텍스트 노드, 주석의 경우 주석 노드 등 총 12개의 노드 타입이 있다

원하는 노드 검색하기

원하는 노드만을 선택하는 경우는 아래와 같은 방법을 사용할 수 있다.
요소를 반환하는지 컬렉션을 반환하는지 주의할 필요가 있다.

찾는 노드, 기준 방법
document document
html document.documentElement
head document.head
body document.body
CSS 선택자 querySelector, querySelectorAll
id getElementById
name getElementsByName
class getElementsByClassName
tag getElementsByTagName

getElementsBy 로 시작하는 메서드 포함 살아있는 컬렉션을 반환하는 메소드가 있어 문서의 변동 내역이 자동으로 갱신되니 주의

인접한 노드, 요소 노드 탐색하기

그냥 노드만 가지고 탐색할 경우 문자노드, 주석노드 등 모든 노드가 탐색되므로 요소 노드만 탐색하는 메서드가 따로 있다.

탐색방법

관계 노드 요소 노드
부모 parentNode parentElement
자식 childNodes children
첫째 자식 firstChild firstElementChild
마지막 자식 lastChild lastElementChild
앞의 형제 previousSibling previousElementSibling
뒤의 형제 nextSibling nextElementSibling

기타 메서드

  • matches: 호출한 요소와 CSS 선택자와 일치하는지 여부 확인
  • closest: 자신과 조상 요소 중 CSS 선택자와 일치하는 가장 가까운 요소를 반환
  • contains: 인자로 받은 요소 호출한 요소의 후손이거나 일치하는지 여부 확인

참조자료

하단 링크 글의 일부를 정리한 게시글이며, 자세한 내용은 아래의 링크에서 찾아보기를 권장드립니다.

🚀 모던 자바스크립트 튜토리얼 - 문서챕터

Tags:

Categories:

Updated: