DOM ( Document Object Model)
: ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก DOM ๊ตฌ์กฐ์ ์ ๊ทผํ ์ ์๋๋ก ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ๊ตฌ์กฐ ๋ ์คํ์ผ์ ๋ณ๊ฒฝํ ์ ์๊ฒ ๋๋ ์ธํฐํ์ด์ค.
์ฐธ๊ณ : https://developer.mozilla.org/ko/docs/Web/API/Document_Object_Model/Introduction
- HTML, XML ๋ฌธ์์ ํ๋ก๊ทธ๋๋ฐ interface
- ๋ฌธ์์ ๊ตฌ์กฐํ๋ ํํ์ ์ ๊ณต
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ DOM์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ ์ ๊ณต
DOM์ ์ฐพ๋ ๋ฐฉ๋ฒ
์๋ ๋ฉ์๋๋ฅผ ํตํด์
getElement | getElements |
querySelector | querySelectorAll |
getElement
document.getElementsByTagName('div’)
document.getElementById('name’)
document.getElementsByClassName('.todo-list')
querySelector
์ผ์นํ๋ ์ฒซ๋ฒ์งธ element
document.querySelector('.search-input-style')
BOM (Browser Object Model)
: ์น๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ฅ์ ๊ฐ์ฒด์ฒ๋ผ ๋ค๋ฃจ๋ ๋ชจ๋ธ
์น๋ธ๋ผ์ฐ์ ์ ๋ค์ํ ๊ธฐ๋ฅ์ ๊ฐ์ฒด์ฒ๋ผ ๋ค๋ฃจ๋ ๋ชจ๋ธ๋ก ์น์ ์ผ๋ถ๋ถ์ ์ ์ดํ ์ ์๊ฒ ํจ
window | ๋ธ๋ผ์ฐ์ ์ฐฝ ๊ฐ์ฒด |
screen | ์ฌ์ฉ์์ ๋์คํ๋ ์ด ์ ๋ณด ๊ฐ์ฒด |
location | ํ์ฌ ํ์ด์ง์ url |
navigator | ์น๋ธ๋ผ์ฐ์ ๋ฐ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ ์ ๋ณด ๊ฐ์ฒด |
history | ํ์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ ์ ๊ทผํ URL ํ์คํ ๋ฆฌ |
์์๋ก ๋ธ๋ก๊ทธ ๊ฐ์ ๊ณณ์์ ๊ธ์ ์์ฑํ๋ค๊ฐ ๊ป์ ๋
window.onbeforeunload = () => '์์ฑ ์ค์ธ ๋ฉ์ธ์ง๊ฐ ์์ต๋๋ค'
์ฐธ๊ณ ) ํฌ๋กฌ์์๋ ์ ๋ฉ์ธ์ง๊ฐ ๋์ค์ง ์๋๋ค.
์ฆ JS ๋์ด๋ค ์ด๋ฒคํธ(click ๊ณผ ๊ฐ์) ๊ฐ ์ผ์ด๋๋์ง ๊ฐ์ํ๋ ๊ฒ์ด๊ณ ๊ทธ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ element๊ฐ DOM์ ๋ ธ๋์ด๋ค.
์ฐ๋ฆฌ๋ DOM์ ์๋ DOM property๋ฅผ ํตํด์ listener๋ฅผ ๋ถ์ฌ๋์ ๊ฒ
๐๋ฏธ๋ ์ธํฐ๋ทฐ ํ์
DOM์ด ์ ํ์ํ๊ฐ์?
: DOM์ ํ๋ก๋๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๋ฌธ์์์์ ์ ๊ทผํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ทธ ๊ตฌ์กฐ๋ ์คํ์ผ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ๊ผญ ํ์ํ ์ธํฐํ์ด์ค์ ๋๋ค.
DOM์ ์ฐพ๋ ๋ฐฉ๋ฒ์ ๋งํด๋ณด์ธ์.
: ํฌ๊ฒ querySelecotr ์ getElement 2๊ฐ์ง ๋ฉ์๋๊ฐ ์๋๋ฐ์, q์์๋ id,ClassName๋ฑ์ ์ด์ฉํด ๊ฐ์ ธ์ฌ ์ ์๊ณ , g ์์๋ ์ผ์นํ๋ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์์๋ฑ์ ๊ฐ์ ธ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
DOM์ ์กฐ์ํ๋ ๋ฉ์๋๋ฅผ ๋งํด๋ณด์ธ์.
์ถ์ฒ)https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction
- element.innerHTML
- element.style.left
- element.setAttribute()
- element.getAttribute()
- element.addEventListener()
DOM์ ๋ ธ๋๋ฅผ ์ด์ํด element๋ฅผ ์ ์ธํ๊ณ ์กฐ์ํ ์ ์๋ค.
'๐ JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS Tam9์ํ] #3 ๊ฐ์ฒด์ ํ๋กํผํฐ (0) | 2021.07.17 |
---|---|
[JS Tam9์ํ] #2 FE ์ํ๊ด๋ฆฌ (0) | 2021.07.16 |
[JavaScript] Closure ๊ณผ Currying (0) | 2021.04.09 |
javascript ๊ณผ Promise ์ async await (0) | 2021.03.15 |
[Javascript] Prototype ์ ํตํ ์์ ๊ณผ __proto__ +(MDN ์์ ๋ก ๋ณด๋ Prototype ์์) (0) | 2021.03.12 |
๋๊ธ