querySelectorAll() ์ ๋ฐฐ์ด์ฒ๋ผ ๋ณด์ด์ง๋ง “๋ฐฐ์ด์ด ์๋๋ค.”
๊ทธ๋์ map(), filter() ๊ฐ์ ๋ฐฐ์ด ์ ์ฉ ๋ฉ์๋๋ฅผ ์ธ ์ ์๋ค. Array.from() ์ผ๋ก ์ง์ง ๋ฐฐ์ด๋ก ๋ณํํ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
1) querySelectorAll()์ ๋ฐํ๊ฐ์ “NodeList”
์๋ฅผ ๋ค์ด:
const checked = document.querySelectorAll(".row-check:checked");
checked ๋ ๋ฐฐ์ด์ด ์๋๋ค.
์ ํํ ํ์
์ NodeList ๋ผ๋ “์ ์ฌ๋ฐฐ์ด ๊ฐ์ฒด”.
์ ์ฌ๋ฐฐ์ด์ด๋:
- ๊ธธ์ด(length) ์์
- ์ธ๋ฑ์ค๋ก ์ ๊ทผ ๊ฐ๋ฅ
- ์ฌ๋ฌ ์์๋ฅผ ๋ด๊ณ ์์
ํ์ง๋ง,
- map() ์์
- filter() ์์
- reduce() ์์
์ฆ, ๋ฐฐ์ด์ฒ๋ผ ์๊ฒผ์ง๋ง ๋ฐฐ์ด์ด ์๋๋ค.
2) NodeList์ ๋ฐฐ์ด(Array)์ ์ฐจ์ด
| ํน์ง | NodeList | Array |
| length ์์ | O | O |
| ์ธ๋ฑ์ค๋ก ์ ๊ทผ | O | O |
| map(), filter() ์ฌ์ฉ | X | O |
| push(), pop() ์ฌ์ฉ | X | O |
| ์ง์ง ๋ฐฐ์ด? | X | O |
์ฆ,
NodeList = ๋ฐฐ์ด์ฒ๋ผ ๋ณด์ด์ง๋ง ๊ธฐ๋ฅ์ด ์ ํ๋จ.
3) ๊ทธ๋ผ ์ Array.from()์ ์ฐ๋?
๋ฐ๋ก ์ธ ์ ์๋ NodeList๋ฅผ
์์ ํ ๋ฐฐ์ด(Array)๋ก ๋ณํํ๊ธฐ ์ํด์.
const arr = Array.from(checked);
→ ์ด์ arr์ ์ง์ง ๋ฐฐ์ด์ด ๋๋ค.
๊ทธ๋ฌ๋ฉด:
arr.map(...)
arr.filter(...)
arr.reduce(...)
๋ชจ๋ ๋ฐฐ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค.
โ querySelectorAll → NodeList(์ ์ฌ๋ฐฐ์ด, map ์์)
โ Array.from(NodeList) → ์ง์ง Array
โ Array.map(el ⇒ … ) ์ฌ์ฉ ๊ฐ๋ฅ
๊ทธ๋์ ์์๊ฐ ์ด๋ ๊ฒ ๋๋ค:
const checked = document.querySelectorAll(".row-check:checked");
// NodeList
const ids = Array.from(checked).map(el => el.dataset.id);
// Array → id ๋ฐฐ์ด ์์ฑ
'๐ฅ๏ธ ํ๋ก ํธ์๋ > ๐กJS, React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| # JS - debounce() ํจ์ ์์ ์ ๋ฆฌ (0) | 2025.12.10 |
|---|---|
| # ์ด๋ฒคํธ ์์(Event Delegation) ์์ ์ดํดํ๊ธฐ (0) | 2025.11.26 |
| # ์๋ฐ์คํฌ๋ฆฝํธ ๋ณ์ ์ ์ธ ๋ฐฉ์๋ณ ํจ์ ์ค์ฝํ(function scope) ์ฐจ์ด์ ! (1) | 2025.11.10 |
| # jQuery๋ฅผ ํตํด Ajax ์์ฒญ ์ ์ ์ญ ๋ก๋ฉ์คํผ๋ ์ ์ด ๋ฐฉ๋ฒ (3) | 2025.10.23 |
| # Query์์ $.getJSON๊ณผ $.ajax ๋น๊ต ์ ๋ฆฌ (1) | 2025.09.22 |