πŸ‘©πŸ»‍πŸ’»STUDY/JavaScript

μ»¬λ ‰μ…˜(Collection)μ΄λž€?

jmjm 2025. 4. 15. 18:19

μ»¬λ ‰μ…˜μ€ μžλ°”μŠ€ν¬λ¦½νŠΈ DOM을 κ³΅λΆ€ν•˜λ©΄μ„œ 계속 λ³΄λŠ” λ‹¨μ–΄μ˜€λŠ”λ° 와닿지 μ•Šμ•˜λ‹€.

gpt λ„μ›€μœΌλ‘œ 이해가 λ˜μ–΄ 기둝용으둜 적어본닀.

정말 얕은 μ§€μ‹μ΄λ‹ˆ 더 깊게 λ“€μ–΄κ°€κ³  μ‹ΆμœΌλ©΄ μž¬μ„œμΉ˜κ°€ ν•„μš”ν•˜λ‹€πŸ˜‚

 

 

https://ko.javascript.info/searching-elements-dom μ—μ„œ

μ™œ documnet.getElementsByTagName('input').value = 5; λŠ” λ™μž‘ν•˜μ§€ μ•Šμ„κΉŒ? 에 λŒ€ν•΄μ„œ μ§ˆλ¬Έμ„ μ‹œμž‘ν–ˆλ‹€.

 

1. document.getElementsByTagName('input') μ΄λž€

이 μ½”λ“œλŠ” HTML λ¬Έμ„œ μ „μ²΄μ—μ„œ <input> νƒœκ·Έλ₯Ό λͺ¨λ‘ μ°Ύμ•„μ€€λ‹€.

예λ₯Ό λ“€μ–΄ μ•„λž˜μ™€ 같은 HTML μžˆλ‹€κ³  κ°€μ •.

<input type="text">
<input type="number">
<input type="password">

 

μ΄λ•Œ

let inputs = document.getElementsByTagName('input');

inputs λ³€μˆ˜μ—λŠ” λͺ¨λ“  <input> μš”μ†Œκ°€ λ‹΄κΈ΄ 묢음(μ»¬λ ‰μ…˜, Collection) 이 λ“€μ–΄κ°€κ²Œ λœλ‹€.

 

2. μ»¬λ ‰μ…˜μ΄λž€?

  • μ—¬λŸ¬ 개의 DOM μš”μ†Œλ₯Ό ν•œ λ°”κ΅¬λ‹ˆμ— 담아놓은 λ°°μ—΄ λΉ„μŠ·ν•œ 자료ꡬ쑰 라고 μƒκ°ν•˜λ©΄ λœλ‹€.
  • JSμ—μ„œλŠ” μ •ν™•νžˆ HTMLCollection(λ˜λŠ” NodeList) 라고 λΆ€λ₯Έλ‹€.
    (HTMLCollectionκ³Ό NodeListλŠ” λΉ„μŠ·ν•˜λ©΄μ„œλ„ 또 닀름! μš°μ„  μ΄λ ‡κ²Œ μƒκ°ν•˜μž)

예λ₯Ό λ“€μ–΄ μœ„ inputs의 κ²°κ³ΌλŠ”

[<input type="text">, <input type="number">, <input type="password">]

처럼 μ—¬λŸ¬ input νƒœκ·Έκ°€ 묢음으둜 λ‹΄κΈ΄ 것이닀.

 

 

3. μ™œ `value = 5;` κ°€ μ•ˆλ˜λŠ”κ°€?

  • 이유1
    • `document.getElementsByTagName('input')` 의 κ²°κ³ΌλŠ” μ—¬λŸ¬ 개의 input μš”μ†Œλ₯Ό 담은 μ»¬λ ‰μ…˜(HTMLCollection) 이지, input μš”μ†Œ κ·Έ μžμ²΄κ°€ μ•„λ‹ˆλ‹€.
  • 이유2
    • `.value`λŠ” input μš”μ†Œ ν•˜λ‚˜μ—λ§Œ μ“Έ 수 μžˆλŠ” 속성이닀. μ»¬λ ‰μ…˜ μ „μ²΄μ—λŠ” `.value` λΌλŠ” 속성이 μ—†λ‹€.
    • 만일 값을 λ„£μ–΄μ£Όκ³  μ‹Άλ‹€λ©΄,
const input = document.getElementsByTagName('input');

// 첫 번째 inputμ—λ§Œ value κ°’ λ„£κΈ°
document.getElementsByTagName('input')[0].value = 5;

// 반볡문으둜 λͺ¨λ‘ 적용1
for(let i = 0; i < inputs.length; i++) {
	inputs[i].value = 5;
}

// 반볡문으둜 λͺ¨λ‘ 적용2
for(let input of inputs) {
	input.value = 5;
}

 

 

4. 정리 - μ»¬λ ‰μ…˜μ΄λž€

  • μ»¬λ ‰μ…˜μ€ μ—¬λŸ¬ μš”μ†Œλ₯Ό 담은 λ°”κ΅¬λ‹ˆλ‹€. 이 λ°”κ΅¬λ‹ˆμ— λ°”λ‘œ value 값을 쀄 수 μ—†λ‹€. λ°”κ΅¬λ‹ˆ μ•ˆ 물건(input) 각각에 value 값을 μ€˜μ•Ό ν•œλ‹€.