STUDY/Front End
Web(Front) - HTML & DOM
ofijwe
2024. 8. 26. 09:41
반응형
📒 HTML과 DOM
1️⃣ DOM (Document Object Model)
- HTML과 XML문서의 구조를 정의하는 API 제공
- 문서 요소 집합을 트리 형태의 계층 구조로 HTML 표현
- 즉, HTML 문서 내용을 조작할 수 있는 API로 HTML 계층구조 형식의 객체로 표현
- 계층 구조 제일 위에는 document 노드 존재
- 아래에 HTML 태그 or 요소(element)를 표현하는 노드 존재
- 아래에 문자열을 표현하는 노드 존재
- HTML 문서의 검색과 조작(추가, 수정, 삭제) 가능
2️⃣ DOM 문서 계층 구조
- Document : HTML or XML 문서 표현
- HTMLDocument : HTML 문서와 요소만 표현
- HTMLElement 하위 타입 : 단일 요소 or 요소 집합의 속성에 해당하는 JS 프로퍼티 정의
- Comment 노드 : HTML or XML의 주석 표현
- 계층 구조
Node - Document - HTMLDocument - Element - HTMLElement - HTMLHeadElement - HTMLBodyElement - HTMLTitleElement - HTMLParagraphElement - HTMLInputElement - etc ... - Attr - CharacterData - Text - Comment
3️⃣ 문서 객체 만들기
- text node를 갖는 객체와 갖지 않는 객체로 나뉨
- createElement(tagName) : element node 생성
- createTextNode(text) : text node 생성
- appendChild(node) : node를 child로 추가
- 객체의 속성 설정
- setAttribute(name, value) : 객체 속성 지정
- 웹 브라우저가 지원하지 않는 태그의 속성도 가능 (즉, 사용자 정의 속성도 사용 가능)
- getAttribute(name) : 객체 속성값 가져옴
- setAttribute(name, value) : 객체 속성 지정
- innerHTML & innerText
- innerHTML : 문자열을 HTML 태그로 삽입
- innerText : 문자열을 text node로 삽입
4️⃣ 문서 객체 가져오기
- getElement
- getElementById(id) : id와 일치하는 element 객체 얻기
- getElementsByClassName(class-name) : class-name과 일치하는 element 배열 얻기
- getElementsByTagName(tag-name) : tag-name과 일치하는 element 배열 얻기
- getElementsByName(name) : name과 일치하는 element 배열 얻기
- querySelector
- querySelector(selector) : selector에 일치하는 첫 번째 element 객체 얻기
- querySelectorAll(selector) : selector에 일치하는 모든 element 배열 얻기
5️⃣ 문서 객체 제거
- 객체 제거
- removeChild(childnode) : 객체의 자식 노드 제거
반응형