๊ด€๋ฆฌ ๋ฉ”๋‰ด

ruriruriya

[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ - DOM์ด๋ž€? ๋ณธ๋ฌธ

๐Ÿ–Œ๏ธWeb/JavaScript

[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ - DOM์ด๋ž€?

๋ฃจ๋ฆฌ์•ผใ…‘ 2024. 4. 21. 13:51
๋ฐ˜์‘ํ˜•

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ DOM(Document Object Model)์ด๋ž€? HTML ๋ฐ XML ๋ฌธ์„œ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.
DOM์€ ๋ฌธ์„œ์˜ ๊ตฌ์กฐ์  ํ‘œํ˜„์„ ์ œ๊ณตํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ๋ฌธ์„œ ๊ตฌ์กฐ, ์Šคํƒ€์ผ ๋ฐ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

์›น ํŽ˜์ด์ง€๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ Œ๋”๋งํ•  ๋•Œ, ๋ธŒ๋ผ์šฐ์ €๋Š” HTML ๋ฌธ์„œ๋ฅผ DOM์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

์ด DOM์€ ๋ฌธ์„œ์˜ ๋ชจ๋“  ์š”์†Œ, ์†์„ฑ ๋ฐ ํ…์ŠคํŠธ๋ฅผ ๋…ธ๋“œ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๊ณ„์ธต์ ์ธ ํŠธ๋ฆฌ ๊ตฌ์กฐ์ด๋‹ค.

DOM์˜ ์ฃผ์š” ๊ฐœ๋…

1. ๋…ธ๋“œ

DOM์˜ ๊ธฐ๋ณธ ์š”์†Œ๋กœ, ๋ฌธ์„œ์˜ ๋ชจ๋“  ๋ถ€๋ถ„(์š”์†Œ, ์†์„ฑ, ํ…์ŠคํŠธ ๋“ฑ)์ด ๋…ธ๋“œ์ด๋‹ค. ๊ฐ ๋…ธ๋“œ๋Š” ๋‹ค๋ฅธ ๋…ธ๋“œ์™€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ด๋Ÿฐ ๊ด€๊ณ„๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ํ‘œํ˜„๋œ๋‹ค.

2. ์š”์†Œ ๋…ธ๋“œ

HTML ํƒœ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ๋…ธ๋“œ๋กœ <.div>, <p>,<span> ๋“ฑ์ด ์žˆ๋‹ค. ์š”์†Œ ๋…ธ๋“œ๋Š” ์†์„ฑ ๋…ธ๋“œ์™€ ํ…์ŠคํŠธ ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ์†์„ฑ ๋…ธ๋“œ

์š”์†Œ์˜ ์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์š”์†Œ ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ๋‹ค.

4. ํ…์ŠคํŠธ ๋…ธ๋“œ

HTML ์š”์†Œ ๋‚ด์˜ ์‹ค์ œ ํ…์ŠคํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” ๋…ธ๋“œ์ด๋‹ค.

 

DOM ์กฐ์ž‘

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DOM ์„ ์กฐ์ž‘ํ•˜์—ฌ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€/์‚ญ์ œ/์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์—ฐ๊ฒฝํ•˜๋Š” ๋“ฑ, ๋™์ ์œผ๋กœ ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž์˜ ์ƒํ˜ธ์ž‘์šฉ์— ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋‹ค. 

[์š”์†Œ ์ถ”๊ฐ€]

// ์ƒˆ๋กœ์šด <p> ์š”์†Œ ์ƒ์„ฑ
var newParagraph = document.createElement("p");
var paragraphText = document.createTextNode("์•ˆ๋…•ํ•˜์„ธ์š”, DOM!");
newParagraph.appendChild(paragraphText);

// <body> ํƒœ๊ทธ ์•ˆ์— ์ƒˆ๋กœ์šด <p> ์š”์†Œ ์ถ”๊ฐ€
document.body.appendChild(newParagraph);

 

[์š”์†Œ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ]

// ํŠน์ • ์š”์†Œ ์„ ํƒ
var myElement = document.getElementById("myElement");
// ์š”์†Œ์˜ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ
myElement.style.color = "red";

 

[์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ์ถ”๊ฐ€]

var button = document.getElementById("myButton");
button.addEventListener("click", function() {
  alert("๋ฒ„ํŠผ์ด ํด๋ฆญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!");
});

 

 

๋ฐ˜์‘ํ˜•