Front-End/JavaScript

[JavaScript] DOM트리와 요소 다루기

시니철 2024. 9. 9. 15:34

window 객체

window 객체는 브라우저 창을 대변하면서 자바스크립트에서 최상단에 존재하는 객체이다.

어느 곳에서나 항상 접근할 수 있는 객체이기에 전역 객체, Global Object라 하며, 어떤 프로퍼티나 메소드를 사용하든 전역 객체 내부의 것이기 때문에 앞에 window. 생략할 수 있다.


DOM

DOM이란 Document Object Model의 약자로 문서 객체 모델이다.

웹 페이지에 나타나는 HTML 문서 전체를 객체로 표현한 것이며, 객체를 노드(Node)라는 용어로 표현하고, 태그는 요소 노드, 문자는 텍스트 노드로 구분된다.


자바스크립트로 태그 선택 방법

메소드 결과
document.getElementById('id') id에 해당하는 태그 하나
document.getElementByClassName('class') class에 해당하는 태그 모음 (HTML Collection - 유사 배열)
document.getElementByTagName('tag') tag에 해당하는 태그 모음 (HTML Collection - 유사 배열)
document.querySelector('css') css 선택자에 해당하는 태그 중 가장 첫 번째 태그 하나
document.querySelectorAll('css') css 선택자에 해당하는 태그 모음 (NodeList - 유사 배열)

DOM 이동 시 활용 가능한 프로퍼티

프로퍼티 결과
element.children element의 자식 요소 모음
(HTML Collection - 유사 배열)
element.firstElementChild element의 첫 번째 자식 요소 하나
element.lastElementChild element의 마지막 자식 요소 하나
element.parentElement element의 부모 요소 하나
element.previousElementSibling element의 이전, 좌측에 있는 요소 하나
element.nextElementSibling element의 다음, 우측에 있는 요소 하나

주요 요소 노드 프로퍼티

프로퍼티 결과
element.innerHTML 요소 안의 정보를 확인할 수 있고,
내부의 HTML 자체를 수정할 때 자주 활용
element.outerHTML 새로운 값을 할당하면 요소 자체가 교체되어 버림
element.textContent HTML태그를 쓰더라도 모두 텍스트로 처리됨

요소 노드 다루기

1. 요소 노드 생성 : document.createElement('태그이름')

2. 요소 노드 추가, 이동 : element.prepend, element.append, element.after, element.before

3. 요소 노드 삭제 : element.remove()


HTML 속성

1. 속성에 접근 : element.getAttribute('속성')

2. 속성 추가(수정) : element.setAttribute('속성', '값')

3. 속성 제거 : element.removeAttribute('속성')


classList 메서드

메소드 내용
classList.add 클래스 추가
classList.remove 클래스 삭제
classList.toggle 클래스 없으면 추가, 있으면 삭제

이 글은 내용을 축소하여 정리한 것으로 일부 정보가 누락되었을 수 있음.