๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/Code-States

[D+16] DOM

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2020. 9. 22.

 

D+16

-  DOM -

(DOM, DOM ์กฐ์ž‘)

 


 

 

DOM ( Document Object Model )

HTML(Document)์— ์ ‘๊ทผํ•˜์—ฌ Object(Java Script)์ฒ˜๋Ÿผ ์—˜๋ฆฌ๋จผํŠธ์˜ ์†์„ฑ๊ฐ’์„ ์–ป์–ด๋‚ด๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ชจ๋ธ

 

 ํŠธ๋ฆฌ๊ตฌ์กฐ

 

 

์—˜๋ฆฌ๋จผํŠธ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ณดํ†ต ์šฐ๋ฆฌ๋Š” ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ํ™•์ธํ•  ๋•Œ ์ฝ˜์†”์ฐฝ์— 'console.log()'๋ฅผ ์ž…๋ ฅํ•ด ํ™•์ธํ•ด ์™”๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์ž…๋ ฅํ–ˆ์„ ๊ฒฝ์šฐ ๊ตฌ์ฒด์ ์ธ ์†์„ฑ๊ฐ’๋“ค์„ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

 

๋งŒ์•ฝ ๋‹ค์–‘ํ•œ ์†์„ฑ๋“ค์„ ํ™•์ธํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด 'console.dir()'์„ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด 

์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋กœ ๋‹ค์–‘ํ•˜๊ฒŒ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

element ๊ฐ์ฒด์— ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ

์†์„ฑ ์†์„ฑ ์ด๋ฆ„
ํƒœ๊ทธ ์ด๋ฆ„ tagName
id id
class ๋ชฉ๋ก classList
class ๋ฌธ์ž์—ด className
์†์„ฑ ๊ฐ์ฒด attributes
์Šคํƒ€์ผ ๊ฐ์ฒด style
์—˜๋ฆฌ๋จผํŠธ์— ๋‹ด๊ธด ๋‚ด์šฉ innerHTML, innerText, textContent
form ์ž…๋ ฅ ๊ฐ’ value
์ž์‹ ์—˜๋ฆฌ๋จผํŠธ children
๋ถ€๋ชจ ์—˜๋ฆฌ๋จผํŠธ parentElement
์ž์‹ ๋…ธ๋“œ childNodes
data -* ์†์„ฑ์— ๋‹ด๊ธด ๊ฐ’ dataset
์ด๋ฒคํŠธ onclick

 

 

์ž์‹ ์—˜๋ฆฌ๋จผํŠธ vs ์ž์‹ ๋…ธ๋“œ

• children (์ž์‹ ์—˜๋ฆฌ๋จผํŠธ)

์ž์‹ ์—˜๋ฆฌ๋จผํŠธ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ํ˜„์žฌ ์š”์†Œ์— ์žˆ๋Š” ์ž์‹ ์š”์†Œ๋“ค์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋น„์š”์†Œ์ผ ๊ฒฝ์šฐ๋Š” ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

• childNodes (์ž์‹ ๋…ธ๋“œ)

ํ˜„์žฌ ์š”์†Œ์˜ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ํฌํ•จ๋œ NodeList๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ๋น„์š”์†Œ์ธ ์ฃผ์„๊ฐ™์€ ๊ฒƒ๋„ ํฌํ•จ๋˜์–ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฑด element๋Š” Node์— ์†ํ•ด ์žˆ๋‹ค๋Š” ๊ฒƒ ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

innerText / innerHTML / textContent

• innerText

ํ™”๋ฉด์— ๋ Œ๋”๋ง์ด ๋˜์–ด์ง€๊ณ  ์žˆ๋Š” ๋ชจ์Šต์œผ๋กœ ํ…์ŠคํŠธ๊ฐ€ ๋ณด์—ฌ์ง„๋‹ค.

 

• innerHTML

ํ…์ŠคํŠธ์™€ ํƒœ๊ทธ๋“ค๊นŒ์ง€ ํฌํ•จํ•œ ๋‚ด์šฉ๋“ค์ด ๋‚˜์˜ค๊ฒŒ ๋˜๋ฉฐ ์‹ค์ œ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

• textContent

์‹ค์ œ ๊ณต๋ฐฑ์„ ๋ชจ๋‘ ํฌํ•จํ•ด์„œ ๋ณด์—ฌ์ง€๋ฉฐ ์‹ค์ œ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

value

value๋Š” ํผ์— ์ž…๋ ฅํ•œ ๊ฐ’์„ ๋ฐ›์•„์˜ฌ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

HTML ํ™”๋ฉด
์ฝ˜์†”์ฐฝ

์ด๋Ÿฐ์‹์œผ๋กœ HTML ํ™”๋ฉด์—์„œ 'ํ™๊ธธ๋™'์ด๋ผ๋Š” ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด

์ฝ˜์†”์ฐฝ์— value๋ฅผ ์‚ฌ์šฉํ•ด ํผ์— ์ž…๋ ฅ๋˜์–ด์ง„ 'ํ™๊ธธ๋™'์ด๋ผ๋Š” ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

 


DOM ์กฐ์ž‘

๊ฐ„๋‹จํ•˜๊ฒŒ DOM์˜ ์†์„ฑ๊ณผ ์ •์˜ ๋“ฑ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค๋ฉด ์ด๋ฒˆ์—๋Š” DOM ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์กฐ์ž‘ํ•ด ๋ณผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

 

Element ์ƒ์„ฑ

์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ createElement๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

document.createElement('div'); // 'div'๋ผ๋Š” ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค.

์‹คํ–‰ํ™”๋ฉด

 

 

Element ์ฒจ๋ถ€ํ•˜๊ธฐ

์‹คํ–‰ํ™”๋ฉด
์ฝ˜์†” ์ž…๋ ฅ์ฐฝ

append๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์œ„์˜ ํ™”๋ฉด์ฒ˜๋Ÿผ ๊ธฐ์กด์— ์—†์—ˆ๋˜ divํƒœ๊ทธ๋ฅผ ์ฒจ๋ถ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋•Œ append๋Š” 'append, preappend, appendchild'๊ฐ€ ์žˆ๋‹ค.

 

• append

์„ ํƒ ์š”์†Œ์˜ ์ž์‹ ์š”์†Œ ๋’ค์— ๋‚ด์šฉ ์‚ฝ์ž…

 

• prepend

์„ ํƒ ์š”์†Œ์˜ ์ž์‹ ์š”์†Œ ์•ž์— ๋‚ด์šฉ ์‚ฝ์ž…

 

• appendChild

์„ ํƒ ์š”์†Œ์˜ ์ž์‹ ์š”์†Œ ๋’ค์— ๋‚ด์šฉ ์‚ฝ์ž…

 

  append() appendChild()
ํƒ€์ž… ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DOM
์ถ”๊ฐ€๋…ธ๋“œ ์—ฌ๋Ÿฌ๊ฐœ ์ถ”๊ฐ€ ๋‹จ์ผ ํ•ญ๋ชฉ
๋ฌธ์ž์—ด ๋…ธ๋“œ ์ง€์› ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ (๋…ธ๋“œ๊ฐ์ฒด๋งŒ ๊ฐ€๋Šฅ)
๋ฆฌํ„ด ๊ฐ’ ์—†์Œ ์ถ”๊ฐ€๋œ ๋…ธ๋“œ ๊ฐ์ฒด ๋ฐ˜ํ™˜

 

 

Element ์กฐํšŒ

• ํƒœ๊ทธ : getElementsByTagName

 

• id : getElementById

ํด๋ž˜์Šค์™€๋Š” ๋‹ฌ๋ฆฌ ์•„์ด๋””๋Š” s๊ฐ€ ๋น ์ ธ์žˆ๋Š”๋ฐ ์ด๋Š” id๋Š” ์ž์ฒด์˜ ๊ฐœ์„ฑ์ด ์žˆ์–ด ํ•œ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์ˆ˜์˜ s๊ฐ€ ๋น ์ง„ ๊ฒƒ์ด๋‹ค.

 

• class : getElementsByClassName

 

• selector : querySelector / querySelectorAll

querySelector๋Š” ๊ฐ€์žฅ ์ตœ์ƒ์œ„์˜ ์š”์†Œ๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ํ•ด๋‹น ์š”์†Œ๊ฐ€ ํ•˜๋‚˜์ผ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ,

querySelectorAll์€ ์š”์†Œ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ผ๋•Œ ํ•œ๋ฒˆ์— ํ™•์ธํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 

Element ์ˆ˜์ •

• textContent

๊ธฐ์กด์— ์ž‘์„ฑ๋˜์–ด์ง„ text์— ์žฌํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

• classList.add

ํด๋ž˜์Šค๋ฅผ ํ•„์š”์— ๋”ฐ๋ผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

Element ์‚ญ์ œ

• remove

๋…ธ๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ญ์ œํ•˜๊ณ  ์ข…๋ฃŒํ•œ๋‹ค.

 

• removeChild

๋…ธ๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ถ€๋ชจ ๋…ธ๋“œ์™€์˜ ์ž์‹๊ด€๊ณ„๋ฅผ ๋Š์–ด

DOM ํŠธ๋ฆฌ์—์„œ ํ•ด์ œํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€