๐ DOM์ด๋?
Document Object Model
- ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ
- HTML, XML ๋ฌธ์์ ๊ฐ ์์๋ค์ ๊ณ์ธต์ ์ผ๋ก ํํํ์ฌ ๋ฌธ์ ๋ด ์์๋ค์ ์์ฑ, ๋ณํ, ์ญ์ ํ ์ ์๋๋ก ๋๋ ์ธํฐํ์ด์ค์ด๋ค.
๐ DOM์์ HTML ์์ ์ฐพ๊ธฐ
document.getElementbyId("")
- ์ธ์๋ก ์ฐพ์ผ๋ ค๋ ์์์ id๋ฅผ ๋ฌธ์์ด ํํ๋ก ์ ๋ฌ (๋์๋ฌธ์ ๊ตฌ๋ถ)
- id๋ ์ ์ผํ ๊ฐ์ด๋ฏ๋ก, ํ๋์ element๋ง ๋ฆฌํดํ๋ค.
document.getElementbyClassName("")
- ์ธ์๋ก ์ฐพ์ผ๋ ค๋ ์์์ class ์ด๋ฆ์ ๋ฌธ์์ด ํํ๋ก ์ ๋ฌ (๋์๋ฌธ์ ๊ตฌ๋ถ)
- ํด๋น class ์ด๋ฆ์ ๊ฐ์ง๋ ๋ชจ๋ element ๋ชฉ๋ก์ ๋ฆฌํดํ๋ค. (์ํ ๊ฐ๋ฅ)
document.getElementsByClassName("red blue");
- ๋ค์์ class ์ด๋ฆ์ ๋ชจ๋ ํฌํจํ๊ณ ์๋ element๋ฅผ ์ฐพ์ ๋ ์ด์ฉ
- ์ธ์๋ก class ์ด๋ฆ๋ค์ ์คํ์ด์ค๋ก ๊ตฌ๋ถํ์ฌ ์ ๋ฌ
- ์ ์์๋ class ์ด๋ฆ์ 'red'์ 'blue' ๋ชจ๋๋ฅผ ํฌํจํ๋ element๋ฅผ ๋ฆฌํดํ๋ค.
document.getElementsByTagName('div);
- ์ธ์๋ก ์ฐพ์ element์ ํ๊ทธ ์ด๋ฆ์ ์ ๋ฌํ๋ค.
- ํด๋น ํ๊ทธ๋ฅผ ๊ฐ์ง ๋ชจ๋ element๋ฅผ ๋ฆฌํดํ๋ค.
document,querySelector("")
- ์ธ์๋ก ๋ฐ์ CSS์ ํ์๋ฅผ ํตํด, element๋ฅผ ์ฐพ์ ๋ฆฌํดํ๋ค.
ID
๋ก ์ฐพ๊ธฐ: document.querySelector('#div_1');
- id ์ด๋ฆ ์์
#
์ ๋ถ์ฌ ์ธ์๋ก ์ ๋ฌํ๋ค.
- ์ ์์๋ id๊ฐ 'div_1'์ธ element๋ฅผ ์ฐพ์ ๋ฆฌํดํ๋ค.
Class
๋ก ์ฐพ๊ธฐ: document.querySelector('.my');
- class ์ด๋ฆ ์์
.
์ ๋ถ์ฌ ์ธ์๋ก ์ ๋ฌํ๋ค.
- ๋ง์ฝ ํด๋น class ์ด๋ฆ์ ๊ฐ์ง element๊ฐ 2๊ฐ ์ด์์ด๋ผ๋ฉด ์ฒซ ๋ฒ์งธ element๋ฅผ ๋ฆฌํดํ๋ค.
- ์ ์์๋ class ์ด๋ฆ์ด 'my'์ธ element ์ค ์ฒซ ๋ฒ์งธ element๋ฅผ ์ฐพ์ ๋ฆฌํดํ๋ค.
Tag
๋ก ์ฐพ๊ธฐ: document.querySelector('h1');
- ์ธ์๋ก ํ๊ทธ๋ช
์ ๋ฌธ์์ด๋ก ์ ๋ฌํ๋ค.
- ๋ง์ฝ ํด๋น ํ๊ทธ๋ช
์ ๊ฐ์ง element๊ฐ 2๊ฐ ์ด์์ด๋ผ๋ฉด ์ฒซ ๋ฒ์งธ element๋ฅผ ๋ฆฌํดํ๋ค.
- divํ๊ทธ๋ฅผ ๊ฐ์ง๋ element ์ค ์ฒซ ๋ฒ์งธ element๋ฅผ ๋ฆฌํดํ๋ค.
,
๋ก ๊ตฌ๋ถํ๊ธฐ: document.querySelector('.red, .green');
- ์ ํ์๋ฅผ ','๋ก ๊ตฌ๋ถํ์ฌ ์ ๋ฌํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ์ ํ์ ์ค ์ฒซ ๋ฒ์งธ๋ก ๋ฐ๊ฒฌ๋๋ ์ ํ์๋ฅผ ๊ฐ์ง element๋ฅผ ๋ฆฌํดํ๋ค.
- ๋ณต์กํ ์ ํ์:
const el = document.querySelector("div.user-panel.main input[name=login]");
- ์ ์์ ๋ ํด๋์ค ์ด๋ฆ์ผ๋ก user-panel
์ main
์ ๊ฐ์ง <div>
ํ๊ทธ ์์ (<div class="user-panel main">
), name
์์ฑ์ด login
์ธ <input>
์ค ์ฒซ ๋ฒ์งธ element ๋ฆฌํด
document.querySelectorAll("")
- ์์ ๋ณด์๋
document.querySelector("")
์ ์ฌ์ฉ๋ฒ์ ๋์ผํ๋ค.
- ๋ค๋ง
document.querySelector("")
๋ ์ฒซ ๋ฒ์งธ element๋ง์ ๋ฐํํ๋ค๋ฉด, document.querySelectorAll("")
์ ์ธ์๋ก ์ ๋ฌํ CSS ์ ํ์๋ก ์ฐพ์ ๋ชจ๋ element ๋ชฉ๋ก์ ๋ฆฌํดํ๋ค.
๐ ์ด๋ฒคํธ ๋ฆฌ์ค๋
target.addEventListener(type, listener);
addEventListener()
๋ฉ์๋๋ ์ง์ ํ ์ด๋ฒคํธ๊ฐ target
์ ์ ๋ฌ๋ ๋๋ง๋ค ํธ์ถํ ์ฝ๋ฐฑํจ์๋ฅผ ์ค์ ํ๋ค.
type
: ์ฒซ ๋ฒ์งธ ์ธ์๋ก๋ ๋ฐ์ํ ์ด๋ฒคํธ ์ ํ์ ๋ฌธ์์ด ํํ๋ก ์ ๋ฌํ๋ค. (click
, input
, change
๋ฑ)
listener
: ๋ ๋ฒ์งธ ์ธ์๋ก๋ ํด๋น target
์๊ฒ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ํธ์ถํ ํจ์๋ฅผ ์ ๋ฌํ๋ค. (react to the event
)