css code
.input-number{
display: block;
width: 100px;
margin: 10px 0;
}
html code
<label for="count">생성할 input 개수 입력 : </label>
<input type="text" size="5"> 개
<button id="btn">생성</button>
<hr>
<button id="sumBtn">아래 입력된 숫자 모두 더하기</button>
결과 : <span id="result"></span>
<div id="container">
<!-- <input type="number" class="input-number"> -->
</div>
js code
const result = document.getElementById("result");
const input = document.querySelector("input");
// 태그값만 넣어서도 가져올 수 있음
const container = document.getElementById("container");
잘 가져와졌는지 확인
생성 버튼 불러와서 이벤트 넣어주기
document.getElementById("btn").addEventListener("click", () => {
result.innerHTML="";
// 버튼 클릭 시 결과 span 태그 안에 input 태그 생성하기
container.innerHTML = ''; // 안 넣으면 btn 클릭했을 때 박스 계속 늘어남
for문 사용하기 input.value (input에 들어온 값만큼 box를 container에 넣음)
for( let i = 0; i < input.value; i++) {
const box = document.createElement("input"); // <input> 태그 생성
box.setAttribute("type","number");
// 속성명 속성값 넣어주기
box.classList.add("input-number");
container.append(box);
}
})
input 안에 입력된 수 모두 더하기
생성한 input 요소 가져오기
const inputSum = document.getElementsByClassName("input-number");
container 안에 생성된 box들을 변수로 지정
inputSum에 들어간 숫자들을 모두 더해야함
아래 입력된 숫자 모두 더하기 버튼 눌렸을 때 해야할 일
inputSum 안에 값들이 모두 더해져서 결과 result창에 출력되고 입력된 숫자, 생성했던 input창 모두 없애기
document.getElementById("sumBtn").addEventListener("click", () => {
let sum = 0;
let sum = 0; 밖에 나가면 계속 더해짐 안에 넣어놔야함, 값이 누적될 곳 sum
클릭했을 때 input 안에 있는 것들이 다 더해져야함
ex) inputSum이 5개 만들어 졌을 때 inputSum[0]~[4]까지 더해야함
for문 이용
for (let i = 0; i < input.value ; i++) {
// inputSum의 i 번째 수
sum += Number(inputSum[i].value);
}
// 결과가 result에 뜨도록
result.innerText = sum;
input.value = ''; // 순서 위로 가면 i 값이 달라져서 여기에 둬야함
container.innerHTML=''; // container 자체를 없애줌 생성한 네모 박스 사라짐
input.value = ''; // 생성할 input 개수 입력한 곳 value 비워줌
})