DOM
은 Document Object Model
의 단축어로, HTML 문서의 구조가 정리된 객체라고 할 수 있겠다.DOM
은 JS에 포함된 것이 아닌, 웹을 구축하는데 사용되는 API 라는 점에서 JS와는 다른 개념임을 알 수 있다.DOM
에 포함된 세부 정보들을 지칭하는 말이다.<body>
, <div>
, <span>
, <input>
등이 속해있다.class=""
, id=""
, type=""
등이 속해있다.노드는 문서에 포함된 구조를 정리한 것, 요소들은 문서를 구성하는 것 이라고 나눠 볼 수도 있겠다.
아직은 이해가 어려워서 여기까지만...
script 태그
를 이용한다.//JS
console.log(document.querySelector('#this').textContent)
<!--HTML-->
<script> <!--이 위치에선 읽지 못한다.-->
<div id="this">hello world</div>
<script> <!--'hello world', 위의 내용이 불러와졌으므로 해당 내용을 가져 올 수 있다.-->
브라우저가 JS 를 다운받는 것을 fetching
, 실행하는 것을 executing
이라고 한다.
JS 를 script 태그
로 불러 올 때 기본
, async
, defer
키워드로 JS를 불러오고 실행하는 방식을 결정 할 수 있다.
브라우저가 HTML 파일을 읽는 과정을 파싱(parsing)
이라고 한다.
기본
async
DOM
요소를 사용하지 않아 순서가 상관없는 JS 를 사용하는 경우 사용 할 수 있다.defer
DOM
요소를 사용하여 순서가 필요한 경우 사용 할 수 있다.console.dir
을 사용하면 선택한 요소에 속한 정보들을 객체로 표시한다.children
이라는 프로퍼티는 가지고 있는 자식 엘리먼트들의 정보를 가지고 있는데 이를 확인하여 자식 엘리먼트들을 확인 할 수 있다.확인하려는 요소.children
으로 바로 확인 할 수도 있다.<!--HTML-->
<body>
<div class="first">
<div></div>
<div></div>
<div></div>
</div>
<div class="second">
<div></div>
<div></div>
<div></div>
</div>
</body>
document.body.children // [div.first, div.second, script]
let second = document.querySelector('.second')
second.children// [div, div, div]
console.dir
로 확인해 보았을 때, 자식은 children
에 저장이 되어있다면, 부모 엘리먼트에 대한 정보는 parentElement 프로퍼티에 저장 되어있다.확인하려는 요소.parentElement
로 바로 확인 할 수도 있다.결국
DOM
이란 우리가 사용하는 요소의 세부내용을 구조화하여 프로퍼티와 메소드를 가진 객체로 문서를 표현한다.
간단히 HTML의 구조와 정보를 객체의 형태로 가지고 있는 것 이라고 생각해도 좋을 것 같다.
DOM
은 부모는 하나고, 자식은 여러개 인것이 반복된다. 즉, 트리구조를 가지고 있다.