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 ํ๋ฉด์์ 'ํ๊ธธ๋'์ด๋ผ๋ ๊ฐ์ ์ ๋ ฅํ๊ฒ ๋๋ฉด
์ฝ์์ฐฝ์ 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 ํธ๋ฆฌ์์ ํด์ ํ๋ ๊ฒ์ด๋ค.
'์๋ > Code-States' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[D+18] ์ฌ์ฐจ์ ์ฐจ ์ผ๋จ ์ฑ๊ณต... (0) | 2020.09.24 |
---|---|
[D+17] JSON์ ๋ํด์ (feat. ๐ฟ) (0) | 2020.09.23 |
[D+15] HTML / CSS (0) | 2020.09.21 |
[D+14] ๋์งธ ์ฃผ ํ๊ธฐ (0) | 2020.09.20 |
[D+13] ๊ฐ์ธ ๊ณต๋ถ (0) | 2020.09.19 |
๋๊ธ