FrontEnd
HTML DOM(Document Object Model)
KJihun
2025. 3. 18. 09:01
728x90
๐น DOM์ด๋?
DOM (Document Object Model) ์ ๋ฌธ์(Document) ๋ฅผ ๊ฐ์ฒด(Object) ๋ก ํํํ๋ ๋ชจ๋ธ(Model) ์ด๋ค.
- ๋ฌธ์ ๊ฐ์ฒด: <html>, <body> ๊ฐ์ HTML ํ๊ทธ๋ฅผ JavaScript๊ฐ ์กฐ์ํ ์ ์๋๋ก ๊ฐ์ฒด๋ก ๋ณํํ ๊ฒ.
- ๋ชจ๋ธ: ๋ฌธ์ ๊ฐ์ฒด๋ฅผ ํธ๋ฆฌ(Tree) ๊ตฌ์กฐ๋ก ํํํ์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ HTML์ ์ดํดํ๋ ๋ฐฉ์.
๐น DOM์ ์ญํ
์น ๋ธ๋ผ์ฐ์ ๋ HTML ๋ฌธ์๋ฅผ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ณํํ์ฌ ์ดํดํ๊ณ , JavaScript๋ ์ด๋ฅผ ํ์ฉํด ๊ฒ์, ์์ , ์ถ๊ฐ, ์ญ์ ๋ฑ์ ์์ ์ ์ํํ ์ ์๋ค.
๐น Tree ๊ตฌ์กฐ๋?
- Root Node: ์ต์์ ๋ ธ๋๋ก, DOM์์๋ <html>์ด ํด๋น๋๋ค.
- Parent & Child: ์์ ๋ ธ๋๋ฅผ ๋ถ๋ชจ(Parent), ํ์ ๋ ธ๋๋ฅผ ์์(Child)์ด๋ผ ํ๋ค.
- Leaf Node: ๋ ์ด์ ์์์ด ์๋ ๋ ธ๋๋ฅผ ๋ปํ๋ฉฐ, DOM์์๋ ํ ์คํธ ๋ ธ๋ ๊ฐ์ ์์๊ฐ ํด๋น๋๋ค.
๐น HTML์ด DOM ํธ๋ฆฌ๋ก ๋ณํ๋๋ ๊ณผ์
- ๋ธ๋ผ์ฐ์ ๊ฐ HTML์ ์ฝ๊ณ ๋ถ์(Parsing) ํ๋ค.
- HTML ์์๋ค์ ๊ณ์ธต์ ์ธ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ณํํ๋ค.
- JavaScript๊ฐ ์ด ํธ๋ฆฌ๋ฅผ ์ด์ฉํด ๋์ ์ผ๋ก ์กฐ์ํ ์ ์๋ค.
โ ์์ : HTML ์ฝ๋
<!DOCTYPE html>
<html>
<head>
<title>DOM Example</title>
</head>
<body>
<h1 id="title">Hello, DOM!</h1>
</body>
</html>
โ DOM ํธ๋ฆฌ ๊ตฌ์กฐ
Document
โโโ <html>
โ โโโ <head>
โ โ โโโ <title>DOM Example</title>
โ โโโ <body>
โ โโโ <h1 id="title">Hello, DOM!</h1>
๐น JavaScript๋ก DOM ์กฐ์ํ๊ธฐ
๐ ์์ ์ฐพ๊ธฐ ๋ฐ ๋ณ๊ฒฝ
document.getElementById("title").textContent = "Hello, JavaScript!";
๐ ์๋ก์ด ์์ ์ถ๊ฐ
let newPara = document.createElement("p"); newPara.textContent = "์๋ก์ด ๋ฌธ๋จ์ด ์ถ๊ฐ๋์์ต๋๋ค!"; document.body.appendChild(newPara);