DOM(Document Object Model)์ HTML ๋ฌธ์๋ฅผ ๊ฐ์ฒด(Object)์ ํธ๋ฆฌ ๊ตฌ์กฐ(Tree Structure) ๋ก ํํํ ๊ฒ์ผ๋ก, ์น ํ์ด์ง๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์กฐ์ํ ์ ์๋ ๊ตฌ์กฐ์ ๊ธฐ๋ฐ์ ๋๋ค.
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
| ์ ์ | HTML ๋ฌธ์๋ฅผ ํธ๋ฆฌ ํํ๋ก ํํํ ๊ตฌ์กฐ (๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ) |
| ์ญํ | ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ HTML์ ์ฝ๊ณ , ์์ ํ ์ ์๊ฒ ํจ |
| ์์ฑ ์์ | ๋ธ๋ผ์ฐ์ ๊ฐ HTML์ ์ฝ๊ณ ํ์ฑํ ๋ |
| ์ฃผ์ ๊ธฐ๋ฅ | ์์ ํ์, ์์ฑ ์์ , ์คํ์ผ ๋ณ๊ฒฝ, ์์ ์ถ๊ฐ/์ญ์ ๋ฑ |
| ์ฌ์ฉ ์ด์ | ์น์ ๋์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ํ์์ ์ธ ๊ธฐ์ |
HTML ๋ฌธ์๊ฐ ๋ก๋๋๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ๋ฌธ์๋ฅผ ํ์ฑ(parsing) ํ์ฌ ๋ด๋ถ์ ์ผ๋ก DOM ํธ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค.
DOM ํธ๋ฆฌ๋ ๋ฌธ์ ๊ตฌ์กฐ๋ฅผ ๊ณ์ธต์ ์ผ๋ก ํํํ ํธ๋ฆฌ ํํ์ ๋๋ค. ๊ฐ ์์(ํ๊ทธ, ํ ์คํธ, ์ฃผ์ ๋ฑ)๋ โ๋ ธ๋(Node)โ๋ผ๊ณ ๋ถ๋ฆฝ๋๋ค.
๋ค์ HTML์ DOM ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ํํํด๋ณด๊ฒ ์ต๋๋ค.
<!DOCTYPE html>
<html>
<body>
<h1>์๋
</h1>
<!-- ์ฌ๊ธฐ ์ฃผ์ -->
</body>
</html>
๐งญ DOM ํธ๋ฆฌ ๊ตฌ์กฐ (ํ ์คํธ ํํ)
Document
โโโ DocumentType (<!DOCTYPE html>)
โโโ html (Element)
โโโ body (Element)
โโโ h1 (Element)
โ โโโ "์๋
" (Text)
โโโ Comment ("์ฌ๊ธฐ ์ฃผ์")
| ๋ ธ๋ ์ข ๋ฅ | ์ค๋ช |
|---|---|
| Document Node | ๋ฌธ์ ์ ์ฒด๋ฅผ ๋ํํ๋ ์ต์์ ๋ ธ๋ |
| Element Node | HTML ํ๊ทธ ์์ (<div>, <h1> ๋ฑ) |
| Text Node | ์์ ์์ ํ ์คํธ ๋ด์ฉ |
| Attribute Node | HTML ์์ฑ (id, class ๋ฑ) |
| Comment Node | ์ฃผ์ (<!-- ์ฃผ์ -->) |
Node๋ HTML์ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ํฌ๊ดํฉ๋๋ค.
Element Node๋ HTML ํ๊ทธ์ ํด๋นํฉ๋๋ค.