4. ๋ฐ์ง ์ ํํ๋ฉด array์ ์ ์ฅํ ๋ฐ์ง์ฌ์ด์ฆ ์ ๋ ๋ฐ์ค ๋ง๋ค๊ธฐ
์กฐ๊ฑด
๋ฐ์ง๋ฅผ ์ ํํ๋ฉด array์ ์ ๋ ฅํ ๋ฐ์ดํฐ๊ฐ ์ฌ์ด์ฆ ์ ๋ ๋ฐ์ค์ ์๋์ผ๋ก ์ถ๊ฐ๋์ด์ผ ํ๋ค.
ํ๋ฆฐ ํ์ด
<form class="container my-5 form-group">
<p>์ํ ์ ํ</p>
<select class="form-select mt-2">
<option>๋ชจ์</option>
<option>์
์ธ </option>
<option>๋ฐ์ง</option>
</select>
<select class="form-select form-popup mt-2 form-hide">
<option>100</option>
</select>
</form>
let pants = [28, 30, 32];
let selectBox = document.querySelector('.form-select');
let selectSize = document.querySelector('.form-popup');
function pantsSize() {
if (selectBox.value == '๋ฐ์ง') {
selectSize.classList.remove('form-hide');
for (i = 0; selectSize.length = pants.length; i++) {
document.querySelectorAll('.form-popup option')[i].innerHTML = pants[i];
selectSize.appendChild(document.createElement('option'));
}
} else { selectSize.classList.add('form-hide'); }
}
selectBox.addEventListener('input', pantsSize);
์์น์ฌํ ๊น ๋ด ์ฌ๋ฆด๊น ๋ง๊น ๊ณ ๋ฏผ ๋ง์ด ํ๋๋ฐ.. for๋ฌธ ์กฐ๊ฑด์์ ๋ถ๋ฑํธ๋ก ํ๋ค๊ฐ ๋น ์ ๋ ๋ฐ์ค๋ก ๋ ธ์ถ๋์ด ๋ฑํธ๋ก ๋ฐ๊ฟจ๋๋ ์๋์ด ๋์ด๋ฒ๋ ค์ ๋ฑํธ๋ก ํ๋ค. ์ด๋ ๋น์ฐํ ๊ฑด๋ฐ, ๋ฑํธ๊ฐ ์ ์ธ์ฒ๋ผ ์๋ํ์ฌ ๋ฌดํ๋ฃจํ ์กฐ๊ฑด์์ด ๋์ด๋ฒ๋ฆฐ ๊ฒ.
์๋ํ๋ ํ์ด
let pants = [28, 30, 32];
let selectBox = document.querySelector('.form-select');
let selectSize = document.querySelector('.form-popup');
function pantsSize() {
if (selectBox.value == '๋ฐ์ง') {
selectSize.classList.remove('form-hide');
for (i = selectSize.length; i < pants.length; i++) {
selectSize.appendChild(document.createElement('option'));
document.querySelectorAll('.form-popup option')[i].innerHTML = pants[i];
}
} else { selectSize.classList.add('form-hide'); }
}
selectBox.addEventListener('input', pantsSize);
์๋ฌธ์ด์๋ ๋ถ๋ถ
์์ธ์ง let selectSizeElement = document.querySelectorAll('.form-popup option'); ์ผ๋ก option์ ์ ์ญ๋ณ์๋ก ์ค์ ํด ๋๊ณ for๋ฌธ์์ document.querySelectorAll('.form-popup option')[i]์ selectSizeElement[i]์ผ๋ก ์ฃผ๋ selectSizeElement[i]๊ฐ undefined๊ฐ ๋์๋ค. ๋๋ฒ๊น ์ง์ document.querySelectorAll('.form-popup option')[i]์ผ๋ก ์ฝ์์ ์ฐ์ด๋ณด๋ฉด ๊ฐ์ด ์ ๋๋ก ๋์๋ค. ๋ณ์ ์์ ํ ๋นํ ๊ฐ์ ํจ์ ์์์ ์ธ๋ฑ์ค๋ฅผ ์ฃผ๋ฉด ์๋ฌ๊ฐ ๋๋๊ฑธ๊น?
์๋ฌธ ํด๊ฒฐ
document.querySelectorAll('.form-popup option')์ ์ ์ญ๋ณ์๋ก ์ค์ ํ๋(if๋ฌธ ์ฒซ์ค์ ๋ฃ์ด๋ ๋๊ฐ๋ค) createElement๋ก ์๋ก์ด option์ ๋ง๋ค๊ธฐ ์ ์ ์ฝ์ด๋ฒ๋ ค์ ์ธ๋ฑ์ค๋ค์ด ์ฝ์ด์ง์ง ์๋ ๊ฒ์ด์๋ค.
for (i = selectSize.length; i < pants.length; i++) {
selectSize.appendChild(document.createElement('option'));
let selectSizeElement = document.querySelectorAll('.form-popup option'); //์ฌ๊ธฐ
selectSizeElement[i].innerHTML = pants[i];
}
(๊ทธ๋์ ์ด๊ฑด ์ ๋๋ก ์๋ํ๋ค)
forEach ๋ฒ์
let pants = [28, 30, 32];
let selectBox = document.querySelector('.form-select');
let selectSize = document.querySelector('.form-popup');
function selectSizePop() {
if (selectBox.value == '๋ฐ์ง') {
selectSize.classList.remove('form-hide');
selectSize.innerHTML = '';
pants.forEach(function(pantsSize){
selectSize.insertAdjacentHTML('beforeend', `<option>${pantsSize}</option>`);
});
} else { selectSize.classList.add('form-hide'); }
}
selectBox.addEventListener('input', selectSizePop);
์ถ์ฒ : ์ฝ๋ฉ์ ํ https://codingapple.com/
'๐จ JavaScript > ๋ฌธ์ ํ๊ธฐ (ํ๋ก๊ทธ๋๋จธ์ค, ์ฝ๋ฉ์ ํ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Level 3 : 9 ์ฅ๋ฐ๊ตฌ๋๋ฒํผ ๊ตฌํํ๊ธฐ(localStorage, array, forEach, JSON) (0) | 2023.04.15 |
---|---|
Level 3 : 5~8 (ajax, json, array, sort) (0) | 2023.04.13 |
Level 3 : 1~3 (array, object) (0) | 2023.01.31 |
[์ค์] Level 2 : 14,15(์์ ๋ฐ ๊นจ๋ฌ์ ์ )_for, ๋ฒ๋ธ๋งํ์ฉ์ถ์ฝ๋ฒ์ (0) | 2023.01.13 |
Level 2 : 6~13(์์ ๋ฐ ๊นจ๋ฌ์ ์ )_scroll (0) | 2023.01.12 |