자바스크립트 클릭할때 마다 금액을 올리는 코드가 이게 틀렸나요?
본문
체크박스 28개가 있는데 모두 같은 클래스를 부여했고,
금액은 70,000원으로 고정되어 있는데 2개 이상 하나씩 추가할때 마다 60,000원씩 더하고 싶습니다
코드를 보자면
const addProduct = document.getElementById("services10");----> 상품과 금액이 기재되어 있는 <div>
const proCheckboxs = document.querySelectorAll(".product_chckb");---->28개의 체크박스
let productAmount = document.querySelector(".product_amount");----> 금액이 기재되어 있는 <span>
for (let i = 0; i < proCheckboxs.length; i++) {
proCheckboxs[i].addEventListener("click", function() {
if(proCheckboxs[i].checked = 1){
addProduct.style.display = "flex"
} else if(proCheckboxs[i].checked = 2){
addProduct.style.display = "flex"
productAmount.innerHTML = "130,000원"
}
});
}
자바스크립트 초보라 구글링하면서 있는 예제코드들 수정해가면서 하는데
잘 되지가 않습니다..
팁 좀 주시면 감사하겠습니다!
답변 2
for (let i = 0; i < proCheckboxs.length; i++) proCheckboxs[i].addEventListener("click", sumclick);
function sumclick(){
let cnt=0;
for (let i = 0; i < proCheckboxs.length; i++)
if(proCheckboxs[i].checked ) cnt++;
if( cnt==1)
productAmount.innerHTML = "70,000원";
else If( cnt>1){
sum=70000+60000*(cnt-1);
productAmount.innerHTML=number_format( sum)+"원";
} else if( cnt<1)
productAmount.innerHTML="상품을 선택하세요.";
}
}
<script>
$(document).ready(function(){
var productAmount = $('.product_amount').val();
var tot_amount = productAmount;
var increase = 60000;
$('.product_chckb').each(function(i){
$(this).click(function(e){
if($('.product_chckb:checked').length >= 2){
tot_amount = productAmount + ($('.product_chckb:checked').length - 1)*increase;
}else{
tot_amount = productAmount;
}
});
});
});
</script>
checked가 잘 동작할 지 모르겠지만...
이런식으로 length를 이용해서 증가시키고 아닐때는 초기화하는 코드가 필요할 듯 싶네요
!-->