์ฝ๋ ๋ด์ฉ์ <li> ํ๊ทธ๋ฅผ ๊ฐ์ง ๋ชจ๋ ์์๋ฅผ ๋ฌธ์์์ ์ฐพ์๋ด๋ ๋ถ๋ถ์ ๋๋ค.
- const listItemElements = document.querySelectorAll('li');
- const listItemElements = document.getElementsByTagName('li'); (์ด ์ค์ด ๊ฐ์กฐ๋์ด ์์ต๋๋ค.)
๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ์ง ํ๋จ์ ํ๊ตญ์ด ์ค๋ช "์ด๊ฒ๋ง ์์์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ํ๋ ์ค์๊ฐ ๋ชฉ๋ก์ ์ ๊ณตํฉ๋๋ค"๋ ๋ฐ๋ก ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ธ document.getElementsByTagName('li')๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์์ต๋๋ค.
์ด๊ฒ์ด ์๋ฏธํ๋ ๋ฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- document.querySelectorAll('li'): ์ด ๋ฉ์๋๋ ์ฝ๋๊ฐ ์คํ๋๋ ๊ทธ ์๊ฐ ๋ฌธ์์ ์กด์ฌํ๋ ๋ชจ๋ <li> ์์๋ค์ **์ ์ ์ธ(static) ๋ชฉ๋ก(NodeList)**์ ๋ฐํํฉ๋๋ค. ํ๋ฒ ๋ชฉ๋ก์ด ๋ง๋ค์ด์ง๋ฉด, ๊ทธ ์ดํ์ ๋ฌธ์์์ ์๋ก์ด <li> ์์๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ๊ธฐ์กด์ <li> ์์๊ฐ ์ ๊ฑฐ๋์ด๋ ์ด ๋ชฉ๋ก์ ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋์ง ์์ต๋๋ค. ์ฆ, ์ค๋ ์ท๊ณผ ๊ฐ์ต๋๋ค.
- document.getElementsByTagName('li'): ์ด ๋ฉ์๋๋ ๋ฌธ์์ ์กด์ฌํ๋ ๋ชจ๋ <li> ์์๋ค์ **์ค์๊ฐ(live) ๋ชฉ๋ก(HTMLCollection)**์ ๋ฐํํฉ๋๋ค. ์ด ๋ชฉ๋ก์ ๋ฌธ์์ DOM ๊ตฌ์กฐ์ ์ฐ๊ฒฐ๋์ด ์์ด์, ์ฝ๋๊ฐ ์คํ๋ ์ดํ์ ๋ฌธ์์ ์๋ก์ด <li> ์์๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ๊ธฐ์กด์ <li> ์์๊ฐ ์ ๊ฑฐ๋๋ฉด, ์ด ๋ชฉ๋ก์ ์๋์ผ๋ก ๊ทธ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ํ์ฌ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ด๋ฏธ์ง์ ์ค๋ช ์ document.getElementsByTagName (๋ฟ๋ง ์๋๋ผ document.getElementsByClassName ๋ฑ)์ฒ๋ผ "์ค์๊ฐ ๋ชฉ๋ก"์ ๋ฐํํ๋ ๋ฉ์๋์ document.querySelectorAll์ฒ๋ผ "์ ์ ๋ชฉ๋ก"์ ๋ฐํํ๋ ๋ฉ์๋์ ์ฐจ์ด๋ฅผ ๊ฐ์กฐํ๋ฉฐ, DOM์ ๋์ ์ธ ๋ณ๊ฒฝ(์์ ์ถ๊ฐ/์ญ์ ๋ฑ)์ด ๋ฐ์ํ ๊ฒฝ์ฐ ๊ทธ ๋ณ๊ฒฝ ์ฌํญ์ ์๋์ผ๋ก ๋ฐ์ํ๋ ๊ฒ์ getElementsByTagName๊ณผ ๊ฐ์ "์ค์๊ฐ ๋ชฉ๋ก"์ ๋ฐํํ๋ ๋ฉ์๋๋ฟ์ด๋ผ๋ ๊ฒ์ ์๋ ค์ฃผ๊ณ ์์ต๋๋ค.
DOM์์ **์ค์๊ฐ(live) ๋ชฉ๋ก(HTMLCollection)**์ ๋ฐํํ๋ ์ฃผ์ ๋ฉ์๋ ๋ฐ ํ๋กํผํฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ด๋ค์ ๋ฌธ์ ๊ตฌ์กฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ์๋์ผ๋ก ๋ฐ์ํฉ๋๋ค.
- document.getElementsByTagName(tagName)
- ํน์ ํ๊ทธ ์ด๋ฆ(์: 'div', 'a', 'li')์ ๊ฐ์ง ๋ชจ๋ ํ์ ์์๋ฅผ ๋ฌธ์ ์ ์ฒด์์ ์ฐพ์์ HTMLCollection์ผ๋ก ๋ฐํํฉ๋๋ค.
- ์ด๋ฏธ์ง์์ ์์๋ก ๋์จ document.getElementsByTagName('li')๊ฐ ์ฌ๊ธฐ์ ํด๋นํฉ๋๋ค.
- element.getElementsByTagName(tagName)
- document ๊ฐ์ฒด๋ฟ๋ง ์๋๋ผ ํน์ ์์(element)๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ทธ ์์์ ํ์ ์์ ์ค ํน์ ํ๊ทธ ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ์์๋ฅผ ์ฐพ์์ HTMLCollection์ผ๋ก ๋ฐํํฉ๋๋ค.
- document.getElementsByClassName(className)
- ํน์ ํด๋์ค ์ด๋ฆ(์: 'my-class')์ ๊ฐ์ง ๋ชจ๋ ํ์ ์์๋ฅผ ๋ฌธ์ ์ ์ฒด์์ ์ฐพ์์ HTMLCollection์ผ๋ก ๋ฐํํฉ๋๋ค.
- element.getElementsByClassName(className)
- ํน์ ์์(element)๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ทธ ์์์ ํ์ ์์ ์ค ํน์ ํด๋์ค ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ์์๋ฅผ ์ฐพ์์ HTMLCollection์ผ๋ก ๋ฐํํฉ๋๋ค.
- element.children
- ์ด๊ฒ์ ๋ฉ์๋๊ฐ ์๋๋ผ ํ๋กํผํฐ์ ๋๋ค. ํน์ ์์์ ๋ชจ๋ **์์ ์์(Element ํ์ ๋ ธ๋)**๋ฅผ HTMLCollection์ผ๋ก ๋ฐํํฉ๋๋ค. ํ ์คํธ ๋ ธ๋๋ ์ฃผ์ ๋ ธ๋ ๋ฑ์ ํฌํจ๋์ง ์์ต๋๋ค.
์ด ๋ฉ์๋๋ค(getElementsByTagName, getElementsByClassName)๊ณผ ํ๋กํผํฐ(children)๋ ๋ชจ๋ ์ค์๊ฐ HTMLCollection์ ๋ฐํํ๊ธฐ ๋๋ฌธ์, ํด๋น ์ปฌ๋ ์ ์ ๊ฐ์ ธ์จ ํ์ DOM์ ๋ณํ(์์ ์ถ๊ฐ/์ญ์ )๊ฐ ์๊ธฐ๋ฉด ์ปฌ๋ ์ ์ ๋ด์ฉ๋ ์๋์ผ๋ก ์ต์ ์ํ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
๋ฐ๋ฉด์ document.querySelectorAll()์ด๋ element.querySelectorAll()์ ์์ ์ค๋ช ๋๋ ธ๋ฏ์ด ์ ์ ์ธ(static) NodeList๋ฅผ ๋ฐํํ๋ฏ๋ก, ํ๋ฒ ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๋ฉด ๊ทธ ์ดํ์ DOM ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์๋์ง ์์ต๋๋ค. document.getElementById()๋ ํ๋์ ์์ ๋๋ null์ ๋ฐํํ๋ฏ๋ก ์ปฌ๋ ์ ๊ณผ๋ ๋ค๋ฆ ๋๋ค.
๋ค, ID๋ฅผ ์ฐพ๋ document.getElementById()๋ ์ค์๊ฐ ๋ชฉ๋ก์ ๋ฐํํ์ง ์์ต๋๋ค.
์ด์ ๋ ๊ฐ๋จํฉ๋๋ค. document.getElementById()๋ ํน์ id ๊ฐ์ ๊ฐ์ง ์์๋ฅผ ์ฐพ์ ๋ฐํํ๋ ๋ฉ์๋์ธ๋ฐ, HTML ํ์ค์ ๋ฐ๋ฅด๋ฉด ๋ฌธ์ ๋ด์์ id ๊ฐ์ **์ ์ผ(unique)**ํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ document.getElementById()๋ ๊ฒฐ๊ณผ๋ก ๋จ ํ๋์ ์์ ๋๋ ํด๋นํ๋ ID๋ฅผ ๊ฐ์ง ์์๊ฐ ์์ ๊ฒฝ์ฐ null์ ๋ฐํํฉ๋๋ค.
์ค์๊ฐ(live) ๋ชฉ๋ก์ด๋ผ๋ ๊ฐ๋ ์ ์ฌ๋ฌ ๊ฐ์ ์์๋ฅผ ๋ด๋ ์ปฌ๋ ์ (์: HTMLCollection, NodeList)์์ ๊ทธ ๋ชฉ๋ก์ ๋ด์ฉ์ด DOM ๋ณํ์ ๋ฐ๋ผ ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. document.getElementById()๋ ์ปฌ๋ ์ ์ด ์๋ ๋จ์ผ ์์๋ฅผ ๋ฐํํ๋ฏ๋ก, ์ค์๊ฐ ๋ชฉ๋ก์ด๋ผ๋ ๊ฐ๋ ์์ฒด๊ฐ ์ ์ฉ๋์ง ์์ต๋๋ค.
๋ฌผ๋ก , document.getElementById('some-id')๋ฅผ ํธ์ถํ ์์ ์๋ ๊ทธ ์๊ฐ DOM์ ์กด์ฌํ๋ ์์๋ฅผ ์ฐพ์์ ๋ฐํํฉ๋๋ค. ๋ง์ฝ ๋์ค์ 'some-id'๋ผ๋ ID๋ฅผ ๊ฐ์ง ์์๊ฐ DOM์ ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋ ํ document.getElementById('some-id')๋ฅผ ๋ค์ ํธ์ถํ๋ฉด, ๊ทธ ์์ ์ DOM ์ํ๋ฅผ ๋ฐ์ํ์ฌ ์๋ก์ด ์์๊ฐ ๋ฐํ๋๊ฑฐ๋ null์ด ๋ฐํ๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ฒ์์ getElementById๋ฅผ ํธ์ถํด์ ์ป์ ์์ ์์ฒด๋ฅผ ๋ด๊ณ ์๋ ๋ณ์๋ DOM ๋ณํ์ ๋ฐ๋ผ ์๋์ผ๋ก ๋ค๋ฅธ ์์๋ก ๋ฐ๋๊ฑฐ๋ ์ฌ๋ผ์ง๊ฑฐ๋ ํ์ง ์์ต๋๋ค.
'๐ป FE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ฑ! (0) | 2025.05.16 |
---|---|
children, childNodes (0) | 2025.05.16 |
์์ฑ , ํ๋กํผํฐ (0) | 2025.05.14 |
์ ๋ฏธ๋์ด์์๋ํ (0) | 2025.05.13 |
๊น ์ํฌ ํ๋ก์ฐ (0) | 2025.05.13 |