8์ฅ
๐ ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ (DOM) ๐
: ์น ๋ฌธ์์ ๋ชจ๋ ์์๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ์กฐ์ํ ์ ์๋๋ก ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด ๋ฌธ์๋ฅผ ํด์ํ๋ ๋ฐฉ๋ฒ
DOM ํธ๋ฆฌ
- ๊ตฌ์กฐ๊ฐ ๋๋ฌด๐ณ์ฒ๋ผ ์๊ฒผ๋ค
- ํ๊ทธ๋ฅผ ์์ ๋ ธ๋๋ก ํํ
- ํ๊ทธ๊ฐ ํ๊ณ ์๋ ํ ์คํธ๋ ์์ ๋ ธ๋์ธ ํ ์คํธ ๋ ธ๋๋ก ํํ
- ํ๊ทธ์ ์์ฑ์ ์์๋ ธ๋์ ์์ ๋ ธ๋์ธ ์์ฑ ๋ ธ๋๋ก ํํ
- ์ฃผ์์ ์ฃผ์ ๋ ธ๋๋ก ํํ
DOM ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฌ์ดํธ!
http://software.hixie.ch/utilities/js/live-dom-viewer/
DOM ์์์ ์ ๊ทผ
: ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์์ ์ ๊ทผํ๋ ๊ฒ
- getElementById()
id ์ ํ์๋ก ์ ๊ทผํ๋ ํจ์
document.getElementById("heading")
- getElementsByClassName()
class ๊ฐ์ผ๋ก ์ ๊ทผํ๋ ํจ์
์ฌ๋ฌ ๋ฒ ์ฌ์ฉ๊ฐ๋ฅํ๊ณ ์ฌ๋ฌ ์์์ ์ ๊ทผํ ์ ์์! ํ๋์ ์์์๋ง ์ ๊ทผํ๊ณ ์ถ๋ค๋ฉด ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ์จ์ ์ ๊ทผ
document.getElementsByClassName("accent")[0]
- getElementsByTagName()
ํ๊ทธ ์ด๋ฆ์ผ๋ก ์ ๊ทผํ๋ ํจ์
์ฌ๋ฌ ์์์ ์ ๊ทผ ๊ฐ๋ฅ
document.getElementsByTagName("h2")[0]
- querySelector(), querySelectorAll()
๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ทผํ๋ ํจ์(#id, .class, ํ๊ทธ ์ด๋ฆ์ผ๋ก ๋ชจ๋ ์ ๊ทผ ๊ฐ๋ฅ)
document.querySelector("#heading")
document.querySelectorAll(".accent") // ์ฌ๋ฌ ์์์ ์ ๊ทผํ๊ธฐ ์ํด querySelectAll ํจ์ ์ฌ์ฉ
* getElement--- ํจ์๋ค์ ์์ ๋ ธ๋๊น์ง๋ง ์ ๊ทผ ๊ฐ๋ฅ
* querySelctor--- ํจ์๋ค์ ํ ์คํธ ๋ ธ๋, ์์ฑ ๋ ธ๋๊น์ง ์ ๊ทผ ๊ฐ๋ฅ
์์์ ์ ๊ทผํด์ ์คํ์ผ ์์
document.querySelector("#heading").style.color="white"
์ด๋ฐ ์์ผ๋ก ์์ ๊ฐ๋ฅ!
DOM ์์์ ์์ฑ์ ์ ๊ทผ
- getAttribute(), setAttribute()
HTML์ ํ๊ทธ ์์ฑ์ ์ ๊ทผํ๋ ํจ์
// getAttribute()
document.querySelector("#prod-pic > img").getAttribute("src")
//setAttribute()
document.querySelector("#prod-pic > img").setAttribute("src","images/coffee-blue.jpg")
DOM์์ ์ด๋ฒคํธ ์ฒ๋ฆฌ
์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ ๋ณต์ต
HTML ํ๊ทธ ์์์ ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ธฐ ์ฐ๊ฒฐ
<img id="pic" src="images/girl.png" alt="" onclick="changePic()">
DOM ์์์ ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ธฐ ์ฐ๊ฒฐ
var pic = document.querySelector('#pic');
pic.onclick = changePic;
-> ์์์ ํ๋์ ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ธฐ๋ง ์ฐ๊ฒฐ ๊ฐ๋ฅ
- addEventListener()
-> ์์์ ์ฌ๋ฌ ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ธฐ ์ฐ๊ฒฐ ๊ฐ๋ฅ
pic.addEventListener("mouseover",changePic);
pic.addEventListener("mouseout",originPic);
์ด๋ฒคํธ ์ ํ์ ์ง์ ํ ๋๋ 'on'์ ๋ถ์ด์ง ์์!