2021. 10. 22. 16:20ใHTML + CSS + JS
1. ๋ฌธ์๊ฐ์ฒด๋ชจ๋ธ DOM
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ์น ๋ฌธ์์ ์ ๊ทผํ๊ณ ์ ์ดํ ์ ์๋๋ก ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด ์น ๋ฌธ์๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์น ๋ฌธ์๋ฅผ ์ด๋ฃจ๋ ํ ์คํธ๋ ์ด๋ฏธ์ง, ํ ๋ฑ์ ๋ชจ๋ ์์๋ ๊ฐ๊ฐ ๊ฐ์ฒด๋ก ์ ์ํ๋ค.
์น ๋ฌธ์ ์ ์ฒด๋ document๊ฐ์ฒด์ด๊ณ , ์ฝ์ ํ ์ด๋ฏธ์ง๋ image ๊ฐ์ฒด๊ฐ ๋๋ค.
DOM์ ์น ๋ฌธ์์ ๊ทธ ์์ ๋ชจ๋ ์์๋ฅผ '๊ฐ์ฒด'๋ก ์ธ์ํ๊ณ ์ฒ๋ฆฌํ๋ค.
2. DOM ํธ๋ฆฌ
์ด๋ฐ ์น ๋ฌธ์๊ฐ ์กด์ฌํ๋ค๊ณ ํ์ ๋
DOM ํธ๋ฆฌ๋
HTML -> HEAD -> META,
-> TITLE
-> BODY -> H1
-> IMG
๋ผ๊ณ ํ ์ ์๋ค.
๋ถ๋ชจ์ ์์ ๊ตฌ์กฐ๋ก ํ์ํ๋ฉด ํธ๋ฆฌํํ๊ฐ ๋๋๋ฐ ์ด๋ฅผ DOM ํธ๋ฆฌ๋ผ๊ณ ํ๋ค.
DOM ํธ๋ฆฌ์์ ๊ฐ์ง๊ฐ ๊ฐ๋ผ์ ธ ๋๊ฐ ํญ๋ชฉ์ ๋ ธ๋๋ผ๊ณ ํ๊ณ , DOM ํธ๋ฆฌ์ ์์๋ถ๋ถ์ธ HTML ๋ ธ๋๋ฅผ ๋๋ฌด ๋ฟ๋ฆฌ์ ํด๋นํ๋คํด์ ๋ฃจํธ ๋ ธ๋๋ผ๊ณ ํ๋ค.
DOM ๊ตฌ์ฑ ์์น
1๏ธโฃ ๋ชจ๋ HTML ํ๊ทธ๋ ์์(element) ๋ ธ๋์ด๋ค.
2๏ธโฃ HTML ํ๊ทธ์์ ์ฌ์ฉํ๋ ํ ์คํธ ๋ด์ฉ์ ๋์ ๋ ธ๋์ธ ํ ์คํธ(text) ๋ ธ๋์ด๋ค.
3๏ธโฃ HTML ํ๊ทธ์ ์๋ ์์ฑ์ ์์ ๋ ธ๋์ธ ์์ฑ(attribute) ๋ ธ๋์ด๋ค.
4๏ธโฃ ์ฃผ์์ ์ฃผ์(comment) ๋ ธ๋์ด๋ค.
3. DOM ์์์ ์ ๊ทผํ๊ณ ์์ฑ ๊ฐ์ ธ์ค๊ธฐ
DOM ์์์ ์ ๊ทผํ ๋ ์ ํ์(class, id, ํ๊ทธ ๋ฑ ) ์ ์ฌ์ฉํด์ ์ ๊ทผํด์ผ ํ๋ค.
1๏ธโฃ id ์ ํ์๋ก ์ ๊ทผํ๋ getElementById() ๋ฉ์๋
์์๋ช .getElementById("id๋ช ")
2๏ธโฃ class ๊ฐ์ผ๋ก ์ ๊ทผํ๋ getElementByClassName() ๋ฉ์๋
์์๋ช .getElementByClassName("class๋ช ")
ex) document.getElementByClassName("bright")
3๏ธโฃ ํ๊ทธ์ด๋ฆ์ผ๋ก ์ ๊ทผํ๋ getElementByTagName() ๋ฉ์๋
์์๋ช .getElementByTagName("ํ๊ทธ๋ช ")
ex) document.getElementByTagName("p") -> p ํ๊ทธ ์ฌ์ฉํ ๋ชจ๋ ์์์ ์ ๊ทผ
4๏ธโฃ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ทผํ๋ querySelector(), querySelectorAll() ๋ฉ์๋
์์ getElementById(), getElementByClassName(), getElementByTagName() ๋ฉ์๋ ๋ฐํ๊ฐ์ htmlCollection ๊ฐ์ฒด์ด๋ค.
์ด ๊ฐ์ฒด์๋ html ์์๋ง ์ ์ฅ๋๋ค.
๋ฐ๋ผ์ DOM ํธ๋ฆฌ์ ํ ์คํธ, ์์ฑ ๋ ธ๋๊น์ง ์์ ๋กญ๊ฒ ์ ์ดํ๊ธฐ ์ํด์๋ querySelector(), querySelectorAll() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผํ๋ค.
id ์ ํ์์ฒ๋ผ ๋ฐํ๊ฐ์ด ํ๋๋ผ๋ฉด querySelector() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ , class ์ ํ์๋ ํ๊ทธ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ ํ๊บผ๋ฒ์ ๋ฐํ๋ ๊ฒฝ์ฐ์๋ querySelectorAll() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
๋ ธ๋.querySelector(์ ํ์)
๋ ธ๋.querySelectorAll(์ ํ์ ๋๋ ํ๊ทธ)
-> ์ ํ์๋ฅผ ํ์ํ ๋ class๋ฉด . ์ฌ์ฉ id๋ฉด # ์ฌ์ฉ
-> ์ด ๋ฉ์๋์ ๋ฐํ ๊ฐ์ ๋ ธ๋ ์๋๋ฉด ๋ ธ๋ ๋ฆฌ์คํธ์ด๋ค.
๋ ธ๋๋ฆฌ์คํธ๋ ๋ ธ๋๋ฅผ ํ๊บผ๋ฒ์ ์ฌ๋ฌ ๊ฐ ์ ์ฅํ ๊ฒ์ผ๋ก ๋ฐฐ์ด๊ณผ ๋น์ทํ๋ค๊ณ ํ ์ ์๋ค.
4. innerText, innerHTML ํ๋กํผํฐ
์๋ฐ์คํฌ๋ฆฝํธ์์ ์น ์์์ ๋ด์ฉ์ ์์ ํ๊ธฐ ์ํด์๋ innerText, innerHTML ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
innerText ํ๋กํผํฐ : ํ ์คํธ ๋ด์ฉ ํ์
innerHTML ํ๋กํผํฐ : HTML ํ๊ทธ๊น์ง ๋ฐ์ํ์ฌ ํ์
์์๋ช .innerText = ๋ด์ฉ
์์๋ช .innerHTML = ๋ด์ฉ
5. getAttribute(), setAttribute()
์น ๋ฌธ์๋ฅผ ๋ฌธ์์ ์ฝ์ ํ ๋ ํ๊ทธ ์์ฑ์ ํจ๊ป ์ฌ์ฉํ๋ฉด DOM ํธ๋ฆฌ์ ์์ฑ ๋ ธ๋๊ฐ ์ถ๊ฐ๋๋ฉด์ ์์ฑ๊ฐ์ด ์ ์ฅ๋๋ค.
์ด๋ ์์ฑ์ ์ ๊ทผํ๋ ค๋ฉด getAttribute() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ , ์์ฑ์ ๊ฐ์ ๋ฐ๊พธ๋ ค๋ฉด setAttribute()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
getAttribute("์์ฑ๋ช ") -> ์์ฑ์ ๊ฐ์ ธ์ฌ ๋ ๋ฉ์๋
setAttribute("์์ฑ๋ช ", "๊ฐ") -> ์ํ๋ ์์ฑ๊ฐ์ ์ง์ ํ๋ ๋ฉ์๋