DOM이란?
-
The Document Object Model, 문서 객체 모델은 HTML, XML문서의 프로그래밍 방식임
-
이 모델은 문서 내의 모든 요소를 정의하고 각각의 요소에 접근하는 방법을 제공
-
W3C의 표준 객체 모델로 계층구조(tree구조)로 표현 됨
DOM과 자바스크립트
-
DOM이 없다면 자바스크립트 언어는 웹페이지, XML페이지 및 요소들과 관련된 정보를 갖지 못함
-
페이지 콘텐츠는 DOM에 저장되고 자바스크립트를 통해 접근하거나 조작할 수 있음
-
API(web or XML page) = DOM +JS(scripting language)
-
문서의 구조적인 표현은 단일 API를 통해 이용 가능하며, DOM의 구현은 어떠한 언어에서도 가능함
-
자바스크립트는 새로운 HTML요소나 속성 추가, 제거 가능
-
자바스크립트는 HTML 문서의 모든 HTML요소, 속성 변경 가능
-
자바스크립트는 모든 CSS스타일 변경 가능
-
자바스크립트는 새로운 HTML이벤트를 추가하고 모든 이벤트에 반응할 수 있음
*XML(Extensible Markup Language):
-
HTML과 비슷한 문자 기반의 마크업 언어임
-
그러나 HTML과 달리 데이터를 저장하고 전달할 목적으로만 만들어짐
-
XML의 태그는 사용자가 직접 정의 함
-
확장성이 좋고 유니코드 문자로만 이루어짐
DOM의 종류
-
Core DOM: 모든 문서 타입ㅇㄹ 위한 DOM모델
-
HTML DOM: HTML 문서를 위한 DOM 모델
-
XML DOM: XML문서를 위한 DOM 모델
주요 DOM 데이터타입
-
document: 트리의 root부분에 해당하는 root document object 자체
-
element: DOM API에 의해 반환된 요소 또는 node를 의미함
-
nodeList: 요소의 배열, index를 통해 접근 가능함
-
attribute: DOM에서 요소와 같은 nodes임
-
namedNodeMap: array와 유사하지만 name 또는 index에 의해 접근 가능함
-
childNodes: 요소의 자식 node의 nodeList 반환
-
firstChild: 요소의 첫 번째 자식 node를 반환
-
firstElementChild: 첫 번째 자식 요소를 반환
-
parentElement: 요소의 부모 요소 반환
-
nextSibling: 동일한 node tree레벨에서 다음 node를 반환
-
nextElementSibling: 동일한 node tree레벨에서 다음 요소 반환
주요 DOM 조작 메소드
-
removeChild(): 요소의 자식 node 제거
-
appendChild(): 마지막 자식 node로 자식 node를 요소에 추가
-
insetBefore(): 기존 자식node 앞에 새 자식 node를 추가
-
cloneNode(): node를 복제
-
replaceChild(): 요소의 자식 node 바꿈
-
closest(): 상위로 올라가면서 가장 가까운 요소 반환
-
innerText: 지정된 node와 모든 자손의 텍스트 내용을 설정 혹은 반환
-
innerHTML: 지정된 요소의 내부 html을 설정하거나 반환
-
insertAdjacentHTML(): HTML로 텍스트를 지정된 위치에 삽입
'웹개발(웹퍼블리셔) > 프론트엔드(HTML, CSS, JAVASCRIPT)' 카테고리의 다른 글
모듈러 Javascript / ES6+ (0) | 2020.01.09 |
---|---|
Fetch API / Ajax(XHR) (0) | 2020.01.08 |
CSS 미디어쿼리-@mediaquery (0) | 2020.01.06 |
HTML 접근성(Accessibility) (0) | 2020.01.05 |
SEO(Search Engine Optimization)-검색엔진 최적화 (0) | 2020.01.04 |