๐Ÿ’ป FE

querySelectorAll('li'), getElementsByTagName('li')

Roy Miller 2025. 5. 14. 15:48

์ฝ”๋“œ ๋‚ด์šฉ์€ <li> ํƒœ๊ทธ๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฌธ์„œ์—์„œ ์ฐพ์•„๋‚ด๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

  1. const listItemElements = document.querySelectorAll('li');
  2. 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)**์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ฃผ์š” ๋ฉ”์„œ๋“œ ๋ฐ ํ”„๋กœํผํ‹ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ ๋ฌธ์„œ ๊ตฌ์กฐ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž๋™์œผ๋กœ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

  1. document.getElementsByTagName(tagName)
    • ํŠน์ • ํƒœ๊ทธ ์ด๋ฆ„(์˜ˆ: 'div', 'a', 'li')์„ ๊ฐ€์ง„ ๋ชจ๋“  ํ•˜์œ„ ์š”์†Œ๋ฅผ ๋ฌธ์„œ ์ „์ฒด์—์„œ ์ฐพ์•„์„œ HTMLCollection์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋ฏธ์ง€์—์„œ ์˜ˆ์‹œ๋กœ ๋‚˜์˜จ document.getElementsByTagName('li')๊ฐ€ ์—ฌ๊ธฐ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
  2. element.getElementsByTagName(tagName)
    • document ๊ฐ์ฒด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŠน์ • ์š”์†Œ(element)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทธ ์š”์†Œ์˜ ํ•˜์œ„ ์š”์†Œ ์ค‘ ํŠน์ • ํƒœ๊ทธ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ฐพ์•„์„œ HTMLCollection์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  3. document.getElementsByClassName(className)
    • ํŠน์ • ํด๋ž˜์Šค ์ด๋ฆ„(์˜ˆ: 'my-class')์„ ๊ฐ€์ง„ ๋ชจ๋“  ํ•˜์œ„ ์š”์†Œ๋ฅผ ๋ฌธ์„œ ์ „์ฒด์—์„œ ์ฐพ์•„์„œ HTMLCollection์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  4. element.getElementsByClassName(className)
    • ํŠน์ • ์š”์†Œ(element)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทธ ์š”์†Œ์˜ ํ•˜์œ„ ์š”์†Œ ์ค‘ ํŠน์ • ํด๋ž˜์Šค ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ฐพ์•„์„œ HTMLCollection์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  5. 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