DOM ( Document Object Model) ์ด๋?
๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ์ด๋ผ๊ณ ํ๋ฉฐ HTML XML ๋ฌธ์๋ฅผ Javascript์์ ์ ๊ทผํ ์ ์๋๋ก Objectํ ํด์ฃผ๋ ๊ธฐ์ ์ ๋งํฉ๋๋ค.
์นํ์ด์ง๋ ํ๋์ ๋ฌธ์(Document)์
๋๋ค.
์นํ์์ง์ ๊ตฌ์กฐ๋ฅผ Object๋ก ๋ง๋ค์ด JavaScript์์ ๋ด์ฉ์ ๋ณ๊ฒฝํ๊ณ , ์ ์ฅํ๋ ๋ฑ์ ์กฐ์์ด ๊ฐ๋ฅํด์ง๋๋ค.
์ฆ, DOM์ ์ฌ์ฉํ๊ฒ ๋๋ฉด, HTML ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ ์ ์๊ฒ ๋๋๊ฑฐ์ฃ !
์ฐ๋ฆฌ์ ์น ๋ธ๋ผ์ฐ์ ๋ HTMLํ์ด์ง๋ฅผ ์๋ฒ์์ ๋ฐ์์จ ํ, HTML์ ๋ก๋ํ ๋ DOM์ ํจ๊ป ์์ฑํฉ๋๋ค.
์ด๋ ๊ฒ ๋๋ฉด, DOM์ด HTML๊ณผ Javascript๊ฐ์ ์ธํฐํ์ด์ค (์ํต์ฐฝ๊ตฌ) ์ญํ ์ ํ๊ฒ ๋๋๊ฑฐ์ฃ .
๊ทธ๋์ DOM ๊ธฐ์ ๋ก ์ฐ๋ฆฌ๋ ๋์ ์นํ์ด์ง๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
- HTML ์์ ๋ฐ ์์ฑ์ ์ถ๊ฐ, ๋ณ๊ฒฝ, ์ ๊ฑฐ ๊ฐ๋ฅ
- CSS ์คํ์ผ ๋ณ๊ฒฝ
- ์๋ก์ด ์ด๋ฒคํธ ์์ฑ, ์ด๋ฒคํธ ๋ฐ์
์๋ ์์ ๋ฅผ ํ์ธํด๋ณผ๊น์? (์ฝ๋ ์ถ์ฒ)
<html>
<head>
<script>
// HTML์ด ๋ก๋ฉ๋ ๋(DOM์ด ์ฌ์น ๊ฐ๋ฅํ ๋), windows.onload ํจ์์ผ ์์๋๋ผ!
window.onload = function() {
// ๋ณ์ ์ ์ธ (h1 element ์์ฑ, elementdp ํ
์คํธ ์ถ๊ฐ)
var heading = document.createElement("h1");
var heading_text = document.createTextNode("Big Head!");
// ๋ฌธ์ ํธ๋ฆฌ์ h1์ ์ถ๊ฐํ๋ค. <h1>bigHead!</h1>๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ ์ถ๋ ฅ๋๋ค.
heading.appendChild(heading_text);
document.body.appendChild(heading);
}
</script>
</head>
<body>
</body>
</html>
์์ ์ ๊ธฐํ์ฃ !
์ด DOM๊ธฐ์ ๋ก ์ฐ๋ฆฌ๋ ์ ๋ง ๋ง์๊ฒ์ ํ ์ ์์ต๋๋ค. Document์ ๊ฐ์ฒด ํ๊ธฐ๋ฐฉ๋ฒ์ ํ์ธํด๋ด
๋๋ค.
๋จผ์ , index.html์ ์์ฑํ๊ณ ์น๋ธ๋ผ์ฐ์ ์์ ์คํ์์ผ๋ด
๋๋ค.
์คํ ๊ฒฐ๊ณผ ํ๋ฒํ html ํ์ด์ง๊ฐ ์์ฑ๋ฉ๋๋ค.
<DOCTYPE html>
<html>
<head>
<title>hello!</title>
</head>
<body>
<H1 id="title">This is Test Page!</H1>
<p>This is test text!</p>
</body>
</html>
์ด์ DOM์ด ์คํ๋๊ณ , HTMLํ์ด์ง๊ฐ ์ด๋ป๊ฒ ๊ฐ์ฒดํ ๋์๋์ง ํ์ธํด๋ด
๋๋ค.
html์ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
<DOCTYPE html>
<html>
<head>
<title>hello!</title>
</head>
<body>
<H1 id="title">This is Test Page!</H1>
<p>This is test text!</p>
<script>
console.dir(document); // document ์ ์ฒด์ ๊ฐ์ฒด ๋ชฉ๋ก์ ํ์ธํด๋ณด์
</script>
</body>
</html>
์น๋ธ๋ผ์ฐ์ ์์ ๋๊ตฌ > Consoleํญ์ ํ์ธํฉ๋๋ค.
#document ์๋์ ๋ชฉ๋ก์ด ๋ฐ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ปจํธ๋กค ํ ์ ์๋ ๊ฐ์ฒด ๋ชฉ๋ก์
๋๋ค!!
์ด๋ ๊ฒ ๋์ค๋ ๊ฐ์ฒด ๋ชฉ๋ก์ ๊ฐ์ง๊ณ ์ฐ๋ฆฌ๋ HTML์ ์์ ํ ์ ์์ต๋๋ค.
๋จผ์ , ํ์ดํ์ ๋ฐ๊ฟ๋ณผ๊น์?
๊ฐ์ฒด ๋ชฉ๋ก์์ title์ ํ์ธํ ์ ์๋ค์!
์ฝ๋๋ฅผ ๋ณ๊ฒฝํด๋ด ๋๋ค.
<DOCTYPE html>
<html>
<head>
<title>hello!</title>
</head>
<body>
<H1 id="title">This is Test Page!</H1>
<p>This is test text!</p>
<script>
console.dir(document); // document ์ ์ฒด์ ๊ฐ์ฒด ๋ชฉ๋ก์ ํ์ธํด๋ณด์
document.title = "change!" // title ๋ด์ฉ์ ๋ณ๊ฒฝํด๋ณด์!
</script>
</body>
</html>
๊ทธ๋ฆฌ๊ณ ์น๋ธ๋ผ์ฐ์ ์์ ๋ค์ํ๋ฒ ๋ก๋ฉ ํด๋ณด๋ฉด!!
๋ค~~! ์ด๋ ๊ฒ title ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
๋ ํ์ตํ๊ธฐ์ํด์ ์๋ Examples ์ ํ์ธํ์ธ์ ๐๐ป
developer.mozilla.org/ko/docs/Web/API/Document_Object_Model/Examples