JS๋ ํ๋ฉด์ ๊ตฌ์ฑํ๋ ๋ชจ๋ ๊ฒ๋ค์ Object๋ก ์์ฑํ๊ณ ๊ด๋ฆฌ
BOM(Browser Object Model)
- window
- ์ฐธ์กฐ : https://developer.mozilla.org/ko/docs/Web/API/Window
- ์ต์์ ๊ฐ์ฒด (์ฐธ์กฐ๋ณ์๋ช ์ ์๋ต ๊ฐ๋ฅ)
a. document : HTML ๋ฌธ์ ๊ด๋ฆฌ
b. location : URL ๊ด๋ฆฌ
c. history : ๋ค๋ก, ์์ผ๋ก ๊ฐ๊ธฐ...
d. navigator : Web Browser ์ ๋ณด
e. screen : ํด๋ผ์ด์ธํธ์ ๋ชจ๋ํฐ ํ๋ฉด - location
- ์ฃผ์ ๋ณ์
1) href : ๋ณ์์ ์ ์ฅ๋ URL ์ฃผ์๋ก ์์ฒญ์ด ๋ฐ์
DOM(Document Object Model)
DOM์ด๋
- ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(The Document Object Model, ์ดํ DOM) ์ HTML, XML ๋ฌธ์์ ํ๋ก๊ทธ๋๋ฐ interface ์ด๋ค.
- DOM์ ๋ฌธ์์ ๊ตฌ์กฐํ๋ ํํ(structured representation)์ ์ ๊ณตํ๋ฉฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ DOM ๊ตฌ์กฐ์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ๊ทธ๋ค์ด ๋ฌธ์ ๊ตฌ์กฐ, ์คํ์ผ, ๋ด์ฉ ๋ฑ์ ๋ณ๊ฒฝํ ์ ์๊ฒ ๋๋๋ค.
- DOM ์ nodes์ objects๋ก ๋ฌธ์๋ฅผ ํํํ๋ค. ์ด๋ค์ ์น ํ์ด์ง๋ฅผ ์คํฌ๋ฆฝํธ ๋๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค์์ ์ฌ์ฉ๋ ์ ์๊ฒ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ์ญํ ์ ๋ด๋นํ๋ค.
1. Element ์ ํ(Selector)
1) ID ์ ํ์
- window.document.getElementById('id๋ช
')
2) Class ์ ํ์
- window.document.getElementsByClassName('ํด๋์ค๋ช
')
- ๋ฆฌํด ํ์
์ ๋ฐฐ์ด์, ํด๋์ค๋ช
์ด ํ ๊ฐ๋ผ๋ ๋ฐฐ์ด๋ก ๋ฆฌํด
3) Tag ์ ํ์
- window.document.getElementsByTagName('Tag๋ช
')
- ๋ฆฌํด ํ์
์ ๋ฐฐ์ด์, ํด๋์ค๋ช
์ด ํ ๊ฐ๋ผ๋ ๋ฐฐ์ด๋ก ๋ฆฌํด
2. ์ ํ์๋ก ์ ํํ Element์ ๋ด๋ถ์ ์๋ Contents๋ฅผ ๊ฐ์ง๊ณ ์ค๊ฑฐ๋ ๋ณ๊ฒฝ
A. GET
1) ์ ํ์.innerHTML : ๋ณ์, ์ ํํ Element์ ์์ ํ๊ทธ๋ค ์ ๋ถ ๋ฐํ
2) ์ ํ์.innerText : ๋ณ์, ์ ํํ Element์ ๋ด๋ถ์ ๋ชจ๋ Text ๋ฐํ
B. SET
1) ์ ํ์.innerHTML = ๊ฐ
2) ์ ํ์.innerText = ๊ฐ
3. ์ ํ์๋ก ์ ํํ Element์ ์์ฑ์ ๊ฐ์ ๊ฐ์ง๊ณ ์ค๊ฑฐ๋ ๋ณ๊ฒฝ
A. GET
1) ์ ํ์.์์ฑ๋ช
2) ์ ํ์.getAttribute("์์ฑ๋ช
");
B. SET
1) ์ ํ์.์์ฑ๋ช
= ๊ฐ;
2) ์ ํ์.setAttribute("์์ฑ๋ช
");
C. class ์์ฑ
1) class์ ์ด๋ฆ(๊ฐ) ๊ฐ์ ธ์ค๊ธฐ
a. ์ ํ์.className : ๋ณ์
b. ์ ํ์.classList : ๋ณ์, ์ฌ๋ฌ๊ฐ, ๋ฐฐ์ด
2) class์ ์ด๋ฆ(๊ฐ) ๋ณ๊ฒฝํ๊ธฐ
a. ์ ํ์.className = ๊ฐ : ํ๊ฐ
b. ์ ํ์.classList.replace('๋ณ๊ฒฝ ์ ํด๋์ค๋ช
', '๋ณ๊ฒฝํ ํด๋์ค๋ช
') : ์ฌ๋ฌ๊ฐ ์ค ํ๋ ๋ณ๊ฒฝ
3) class์ ์ด๋ฆ(๊ฐ) ์ถ๊ฐ
a. ์ ํ์.classList.add('์ถ๊ฐํ ํด๋์ค๋ช
') : ํ ๊ฐ ์ถ๊ฐ
b. ์ ํ์.classList.add('์ถ๊ฐํ ํด๋์ค๋ช
1', '์ถ๊ฐํ ํด๋์ค๋ช
2') : ์ฌ๋ฌ ๊ฐ ์ถ๊ฐ
4) class์ ์ด๋ฆ(๊ฐ) Toggle
- ํด๋์ค๋ช
์ด ์์ผ๋ฉด ์ถ๊ฐ, ์์ผ๋ฉด ์ญ์
a. ์ ํ์.classList.toggle('ํด๋์ค๋ช
')
b. ์ ํ์.classList.toggle('ํด๋์ค๋ช
', ์กฐ๊ฑด์ ๋๋ boolean)
5) class์ ์ด๋ฆ(๊ฐ) ์ญ์
a. ์ ํ์.classList.remove('์ญ์ ํ ํด๋์ค๋ช
')
b. ์ ํ์.classList.remove('์ญ์ ํ ํด๋์ค๋ช
1', '์ญ์ ํ ํด๋์ค๋ช
2')