๊ตญ๋น์ง์ D+40
- ๋ฌธ์-๊ฐ์ฒด ๋ชจ๋ธ DOM -
์น๋ธ๋ผ์ฐ์ ๋ ํฌ๊ฒ browsing-system๊ณผ ์ ๋ณด๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
๋ธ๋ผ์ฐ์ง์์คํ ์ ํญ์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ํธ์ถํ๊ธฐ๋ง์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค.
์ ๋ณด๋ HTML์์๋ Document๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ ๋ฌธ์-๊ฐ์ฒด๋ชจ๋ธ DOM์ ๋ํด์ ์ข ๋ ์์ธํ ์์๋ณด๋ ค๊ณ ํ๋ค.
๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ DOM
• Object Model
Object Model์ 3๊ฐ์ง๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ ๋ฐ๋ก DOM, BOM, JS์ด๋ค.
DOM ์์ธํ ์๊ธฐ์ ์ ์ฐ๋ฆฌ๋ ์ด๊ฒ๋ค์ด ์ด๋ ํ ๊ฐ์ ์ด๋ค ์ญํ ์ ํ๊ณ ์๋์ง์ Objectํ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ด์ผ ์ดํดํ๊ธฐ ํธํ๋ค.
• DOM
์น ๋ธ๋ผ์ฐ์ ๋ HTML ํ์ด์ง์ ์๋ Element๋ค์ ํธ๋ฆฌํ์์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉํ๋ค.
์ด๋์ ๊ฐ ๋ ธ๋๋ค์ document object๋ผ๊ณ ํ๋ค.
์น ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฌํ ๋ฌธ์๊ฐ์ฒด๋ฅผ ์ ๊ทผํ ์ ์๋๋ก API(๋ฐ์ดํฐ+๊ธฐ๋ฅ)์ ์ ๊ณตํ๋๋ฐ ์ด๋ฅผ ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ (DOM)์ด๋ผ๊ณ ํ๋ค.
javascript๋ DOM์ ํธ์ถ/์ ์ด ํ๊ธฐ ์ํ ๊ฐ์ฅ ๋ณดํธ์ ์ธ ์ธ์ด์ด๋ค.
• DOMContentLoaded ์ด๋ฒคํธ
JS๋ ์์์๋ถํฐ ์๋๋ก ์ฝ์ด๋ด๋ฆฌ๊ธฐ ๋๋ฌธ์ body์๋ฆฌ๋จผํธ์์ ํ๊ทธ๋ค์ ์ฝํ๊ณ ๋์ script๊ฐ ์คํ๋์์ ๊ฒฝ์ฐ์ script๊ฐ ์ ์์ ์ผ๋ก ์ ์๋๋๋ค.
ํ์ง๋ง ๋ง์ฝ script๊ฐ ์๋จ์ head์๋ฆฌ๋จผํธ์ ์์นํ์ ๊ฒฝ์ฐ body์๋ฆฌ๋จผํธ๋ฅผ ์ฝ์ด๋ด๊ธฐ ์ ์ด๊ธฐ ๋๋ฌธ์ script์์ body์ ๊ดํ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ ๊ฒฝ์ฐ ์๋ฌ๋ฅผ ๋ฐ์์ํจ๋ค.
script๋ฅผ head์ ๋ฃ์ด๋ ์ ์์ ์ผ๋ก ์ ์๋ํ๊ฒ ํ๋ ๋ฐฉ๋ฒ์ DOMContentLoaded๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
์ด๊ธฐ HTML ๋ฌธ์๋ฅผ ์์ ํ ๋ถ๋ฌ์ค๊ณ ๋ถ์ํ์ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ก ๋ฌธ์๊ฐ ์์ ํ๊ฒ ๋ก๋ฉ๋๊ณ ๋ ํ์ script๊ฐ ๋๊ฐ๊ฐ๊ฒ ํ๋ ๋ฐฉ์์ด๋ค.
• ๋ฌธ์๊ฐ์ฒด ์ ํ - querySelector
document.head // ์์์ ์๋ head element ๊ฐ์ ธ์
document.body // ์์์ ์๋ body element ๊ฐ์ ธ์
document.title // ์์์ ์๋ title element ๊ฐ์ ธ์
๋ฌธ์๊ฐ์ฒด๋ฅผ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ ์์์ ์๋ ๋ฌธ์๊ฐ์ฒด๋ฅผ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ document.์๋ฆฌ๋จผํธ ํ์์ผ๋ก ์ ๋ ฅํ๋ฉด ํด๋น ๋ฌธ์ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋ค.
document.querySelector('h1'); // ํ๊ทธ๊ฐ h1์ธ ์๋ฆฌ๋จผํธ ๊ฐ์ ธ์
document.querySelector('#name'); // id๊ฐ name์ธ ์๋ฆฌ๋จผํธ ๊ฐ์ ธ์
document.querySelectorAll('.name'); // class๋ช
์ด name์ธ ์๋ฆฌ๋จผํธ๋ค ๋ค ๊ฐ์ ธ์
๊ทธ๋ฐ๋ฐ ๋ง์ฝ ์์์ ๋ฌธ์ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฅด๋ ๊ฒ์ด ์๋ ํน์ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฌ์ฌ์๋ ์๋๋ฐ ๋ฐ๋ก querySelector๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
querySelector๋ ๋ด๊ฐ ์ค์ ํ ์ ํ์ ์ค์์ ๊ฐ์ฅ ์์ ์๋ ๋ฌธ์๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ค๋ฉฐ ๋ชจ๋ ๋ฌธ์๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ๋ค๋ฉด querySelectorAll์ ์ฌ์ฉํด ์ฃผ๋ฉด ๋๋ค.
'์๋ > ๊ตญ๋น์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[D+42] ๋ฌธ์๊ฐ์ฒด ์์ฑ, ์ด๋ฒคํธ ์ฒ๋ฆฌ (0) | 2022.11.18 |
---|---|
[D+41] ์ด๋ฒคํธ์ ๋ฉ์์ง, sort์ ์๋ฆฌ (0) | 2022.11.17 |
[D+39] ์ค์ฝํ, ํด๋ก์ , JSON (0) | 2022.11.16 |
[D+38] ํจ์ ๊ณ ๊ธ, ๊ฐ์ฒด (0) | 2022.11.15 |
[D+37] ๋ฐฐ์ด์ for๋ฌธ, ํจ์์ ๊ธฐ๋ณธ, ์ฝ๋ฐฑํจ์ (0) | 2022.11.13 |
๋๊ธ