Document Object Model의 약자로
웹페이지의 HTML을 계층화시켜 트리구조로 만든 객체 모델이다
브라우저 → HTML 파일 읽는다 → DOM Tree 구조의 형태로 변환
브라우저는 HTML파일에서 태그들을 브라우저가 이해할 수 있는 자신들만의 오브젝트로 변환한다. 브라우저도 일종의 어플리케이션이기 때문에, 이 어플리케이션은 자신이 이해할 수 있는 오브젝트의 형태로 메모리에 저장한다고 생각하면 쉽다.
HTML ←→ DOM ←→ JavaScript
이로써 자바스크립트는 DOM을 통해 웹페이지에 접근하고, 페이지를 수정할 수 있게 된 것이다.
// 아이디(id)
const getId = document.getElementById('getId');
const idName = document.querySelector('#idName');
// 클래스(class)
const getClass = document.getElementsByClassName('getClass');
const className = document.querySelector('.className ');
// 태그 이름(tag name)
document.getElementsByTagName('tag-name');
// 태그 전부(tag all)
const tagAll = document.querySelectorAll('.tagAll ');
const h1 = document.createElement('h1');
// 태그 속성값 추가
// Element.setAttribute(key,value);
h1.setAttribute('class','title'); // <h1 class="title"></h1>
// 태그 안에 text 추가
h1.textContent = 'This is a h1 tag'// <h1 class="title">This is a h1 tag</h1>
새로운 자식을 추가할 때
단 부모 안에서 제일 끝부분에 추가
// 부모요소 = div
const div = document.querySelector('div');
// 자식요소 = h1
div.appendChild(h1);
// let insertedNode = parentNode.insertBefore(newNode,referenceNode)
div.insertBefore(h1,h3);
const h1 = document.removeChild('h1');