๋ฐ˜์‘ํ˜•

Option() ์ƒ์„ฑ์ž ํ•จ์ˆ˜ | MDN


๐Ÿ” <option> ์š”์†Œ์˜ selected ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ ‘๊ทผํ•˜๋Š” option.selected ํ”„๋กœํผํ‹ฐ๋Š” ์„œ๋กœ ๋…๋ฆฝ์ ์ธ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„๋‹ค. <option> ์š”์†Œ์˜ selected ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ์ดˆ๊ธฐ ์„ ํƒ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , option.selected ํ”„๋กœํผํ‹ฐ๋Š” ํ˜„์žฌ ์„ ํƒ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๊ณ  ์ œ์–ดํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.

// Option() ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด document.createElement() ๋ณด๋‹ค ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค
new Option(text?, value?, defaultSelected?, selected?);

 

โ‘  text : <option> ์š”์†Œ์— ํ‘œ์‹œํ•  ํ…์ŠคํŠธ | ๊ธฐ๋ณธ๊ฐ’ "" ๋นˆ ๋ฌธ์ž์—ด
text์— ์ง€์ •ํ•œ ๊ฐ’์€ option.textContent๋กœ ์„ค์ •๋œ๋‹ค.


โ‘ก value : <option> ์š”์†Œ์˜ value ํ”„๋กœํผํ‹ฐ | ์ƒ๋žต ์‹œ text ๊ฐ’ ์‚ฌ์šฉ

์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด option.value ๊ฐ’์ด select.value๋กœ ์ง€์ •๋œ๋‹ค.


โ‘ข defaultSelected : ์ดˆ๊ธฐ ์„ ํƒ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถˆ๋ฆฌ์–ธ | ๊ธฐ๋ณธ๊ฐ’ false
true ์ง€์ • ์‹œ ์˜ต์…˜ ์š”์†Œ์— selected ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค. ์ •์  HTML์ด๋‚˜ ํŽ˜์ด์ง€๋ฅผ ์ฒ˜์Œ ๋ Œ๋”๋งํ•  ๋•Œ selected ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ์žˆ์œผ๋ฉด ์…€๋ ‰ํŠธ ๋ฐ•์Šค๋Š” ํ•ด๋‹น ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  select.value ํ”„๋กœํผํ‹ฐ์— ๋ฐ˜์˜ํ•œ๋‹ค.

 

ํ•˜์ง€๋งŒ ํŽ˜์ด์ง€ ๋กœ๋“œ ํ›„ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•œ ์˜ต์…˜ ์š”์†Œ๋Š” selected ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ์žˆ์–ด๋„ ์„ ํƒ ์ƒํƒœ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰, ์˜ต์…˜ ์š”์†Œ์˜ selected ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ์…€๋ ‰ํŠธ ๋ฐ•์Šค ์„ ํƒ๊ณผ ๊ด€๊ณ„์—†์ด ์ดˆ๊ธฐ ์ƒํƒœ๋งŒ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์˜ต์…˜์„ ์„ ํƒํ•œ ์ƒํƒœ๋กœ ๋งŒ๋“ค๋ ค๋ฉด Option() ์ƒ์„ฑ์ž 4๋ฒˆ์งธ ์ธ์ž์ธ selected ๊ฐ’์„ true๋กœ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.

 

์–ด๋– ํ•œ ์˜ต์…˜๋„ ์„ ํƒํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ฒซ ๋กœ๋“œ ์‹œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์„ ์ž๋™์œผ๋กœ ์„ ํƒํ•œ๋‹ค. ์ด๋•Œ selected ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ์ถ”๊ฐ€๋˜์ง€ ์•Š๊ณ , option.defaultSelected ํ”„๋กœํผํ‹ฐ ๊ฐ’์—๋„ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. ๋Œ€์‹  option.selected ํ”„๋กœํผํ‹ฐ ๊ฐ’์€ true๊ฐ€ ๋œ๋‹ค.

 

โ‘ฃ selected : ํ˜„์žฌ ์„ ํƒ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถˆ๋ฆฌ์–ธ | ๊ธฐ๋ณธ๊ฐ’ false
true ์ง€์ • ์‹œ ํ•ด๋‹น ์˜ต์…˜์ด ์„ ํƒ๋˜๊ณ  option.selected ํ”„๋กœํผํ‹ฐ๋Š” true ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. option.selected ํ”„๋กœํผํ‹ฐ ๊ฐ’์ด true์—ฌ๋„(์…€๋ ‰ํŠธ ๋ฐ•์Šค์—์„œ ์˜ต์…˜์„ ์„ ํƒํ•œ ์ƒํƒœ) ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” selected ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ์ถ”๊ฐ€๋˜์ง€ ์•Š๋Š”๋‹ค.

 

 

<select> ์ฃผ์š” ์†์„ฑ | MDN


๐Ÿ” ์˜ต์…˜ ์š”์†Œ๋ฅผ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•  ๋• select.add(option|optiongroup) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค | MDN

 

โ‘  name : ์…€๋ ‰ํŠธ ๋ฐ•์Šค(๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก)์˜ ์ด๋ฆ„

ํผ ์ œ์ถœ์‹œ ์„œ๋ฒ„์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฆ„.

name ์†์„ฑ์ด ์—†์œผ๋ฉด ํผ์„ ์ œ์ถœํ•ด๋„ ์…€๋ ‰ํŠธ ๋ฐ•์Šค ๊ฐ’์ด ์„œ๋ฒ„๋กœ ์ „์†ก๋˜์ง€ ์•Š๋Š”๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ) document.forms.myForm.selectName

 

โ‘ก options : ์˜ต์…˜ ๋ชฉ๋ก HTMLCollection (์œ ์‚ฌ๋ฐฐ์—ด)

 

โ‘ข multiple : ์—ฌ๋Ÿฌ ์˜ต์…˜ ์„ ํƒ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ | ๊ธฐ๋ณธ๊ฐ’ false
true ์ง€์ • ์‹œ Cmd(Ctrl) + Click์œผ๋กœ ์—ฌ๋Ÿฌ ์˜ต์…˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.
true ์ง€์ • ์‹œ size ๊ฐ’๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ํ•ญ์ƒ ๋ชฉ๋ก(๋ฆฌ์ŠคํŠธ ๋ฐ•์Šค) ํ˜•ํƒœ๋กœ ํ‘œ์‹œ.

 

โ‘ฃ value : ํ˜„์žฌ ์„ ํƒํ•œ ์˜ต์…˜์˜ value

multiple ์†์„ฑ์ด true์ผ ๋•Œ ์—ฌ๋Ÿฌ ์˜ต์…˜์„ ์„ ํƒํ–ˆ๋”๋ผ๋„ ์ฒซ ๋ฒˆ์งธ๋กœ ์„ ํƒํ•œ ์˜ต์…˜์˜ ๊ฐ’๋งŒ ๋ฐ˜ํ™˜.

 

โ‘ค selectedIndex : ํ˜„์žฌ ์„ ํƒํ•œ ์˜ต์…˜์˜ ์ธ๋ฑ์Šค | ์„ ํƒํ•œ ์˜ต์…˜ ์—†์œผ๋ฉด -1 ๋ฐ˜ํ™˜

multiple ์†์„ฑ์ด true์ผ ๋•Œ๋Š” ์ฒซ ๋ฒˆ์งธ๋กœ ์„ ํƒํ•œ ์˜ต์…˜์˜ ์ธ๋ฑ์Šค๋งŒ ๋ฐ˜ํ™˜.

 

โ‘ฅ selectedOptions : ํ˜„์žฌ ์„ ํƒํ•œ ์˜ต์…˜ ์š”์†Œ๋“ค์ด ํฌํ•จ๋œ HTMLCollection

multiple ์†์„ฑ์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์˜ต์…˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ๋ชฉ๋ก ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜.

 

โ‘ฆ size : ์…€๋ ‰ํŠธ ๋ฐ•์Šค์— ๋ช‡ ๊ฐœ์˜ ์˜ต์…˜์„ ํ‘œ์‹œํ• ์ง€ ์ง€์ • | ๊ธฐ๋ณธ๊ฐ’ 0

๋“œ๋กญ๋‹ค์šด ํ˜•ํƒœ๋กœ ํ‘œ์‹œ: size ์†์„ฑ์ด 1 ์ดํ•˜์ด๊ณ , multiple ์†์„ฑ์ด false ์ผ ๋•Œ.

๋ฆฌ์ŠคํŠธ ๋ฐ•์Šค ํ˜•ํƒœ๋กœ ํ‘œ์‹œ(ํ•ญ์ƒ ํŽผ์นจ): size ์†์„ฑ์ด 2 ์ด์ƒ์ด๊ฑฐ๋‚˜, multiple ์†์„ฑ์ด true ์ผ ๋•Œ.

๋ฐ˜์‘ํ˜•