Javascript 计算我的购买项目总数
我想通过在“购物袋总额”前面加上每件商品的购买总额(例如:2双鞋*价格单位+1个tshit*价格单位)来计算我的购买物品总数: 以下是描述图像: 我已经编写了一个功能代码,可以添加/删除产品,还可以计算每个项目的总购买量。代码的最后一部分是计算我的总购买量,它不起作用。我很困惑,我不知道如何解决它 这里是html5代码:Javascript 计算我的购买项目总数,javascript,html,dom,Javascript,Html,Dom,我想通过在“购物袋总额”前面加上每件商品的购买总额(例如:2双鞋*价格单位+1个tshit*价格单位)来计算我的购买物品总数: 以下是描述图像: 我已经编写了一个功能代码,可以添加/删除产品,还可以计算每个项目的总购买量。代码的最后一部分是计算我的总购买量,它不起作用。我很困惑,我不知道如何解决它 这里是html5代码: <div class="shopping-cart"> <!-- Title --> <div class="title
<div class="shopping-cart">
<!-- Title -->
<div class="title">
Shopping Bag total : <input type="number" value="0" class="total-result-input" />
</div>
<!-- Product #1 -->
<div class="item">
<div class="buttons">
<span class="delete-btn"></span>
<span class="like-btn"></span>
</div>
<div class="image">
<img src="item-1.png" alt="" />
</div>
<div class="description">
<span>Common Projects</span>
<span>Bball High</span>
<span>White</span>
</div>
<div class="quantity">
<button class="plus-btn" type="button" name="button""><img src="plus.svg" alt="" /></button>
<input type="text" value="0" class="input-btn" />
<button class="minus-btn" type="button" name="button"><img src="minus.svg" alt="" /></button>
</div>
<div class="total-price" id="549"><input type="number" value="0" class="result-btn" /></div>
</div>
<!-- Product #2 -->
<div class="item">
<div class="buttons">
<span class="delete-btn"></span>
<span class="like-btn"></span>
</div>
<div class="image">
<img src="item-2.png" alt=""/>
</div>
<div class="description">
<span>Maison Margiela</span>
<span>Future Sneakers</span>
<span>White</span>
</div>
<div class="quantity">
<button class="plus-btn" type="button" name="button"><img src="plus.svg" alt="" /></button>
<input type="text" value="0" class="input-btn" />
<button class="minus-btn" type="button" name="button"><img src="minus.svg" alt="" /></button>
</div>
<div class="total-price" id="270"><input type="number" value="0" class="result-btn" /></div>
</div>
<!-- Product #3 -->
<div class="item">
<div class="buttons">
<span class="delete-btn"></span>
<span class="like-btn"></span>
</div>
<div class="image">
<img src="item-3.png" alt="" />
</div>
<div class="description">
<span>Our Legacy</span>
<span>Brushed Scarf</span>
<span>Brown</span>
</div>
<div class="quantity">
<button class="plus-btn" type="button" name="button" ><img src="plus.svg" alt="" /></button>
<input type="text" value="0" class="input-btn" />
<button class="minus-btn" type="button" name="button"><img src="minus.svg" alt="" /></button>
</div>
<div class="total-price" id="349"><input type="number" value="0" class="result-btn" /></div>
</div>
</div>
购物袋总数:
共同项目
B高
白色
将它放在一个合理的函数中,并在每次更改(加号、减号)时调用此函数。我刚刚添加
document.querySelector('.total-result-input').value = [].slice.call(document.querySelectorAll(".total-price > input")).reduce((acc, el) => acc + parseInt(el.value), 0)
在事件的内部,单击事件,一切都将正常工作
var items=document.querySelectorAll('.item');
items.forEach(功能(项目){
var minusButton=item.querySelector('.减btn');
var plusButton=item.querySelector('.plus btn');
var inputField=item.querySelector('.input btn');
var resultField=item.querySelector('.result btn');
minusButton.addEventListener('click',函数minusProduct(){
var currentValue=编号(inputField.value);
如果(当前值>0){
inputField.value=当前值-1;
var x=item.querySelector('.total price').id;
resultField=item.querySelector('.result btn')。value=x*inputField.value;
document.querySelector(“.total result input”).value=[].slice.call(document.queryselectoral(“.total price>input”)).reduce((acc,el)=>acc+parseInt(el.value),0)
}else inputField.value=0
});
plusButton.addEventListener('click',函数plusProduct(){
var currentValue=编号(inputField.value);
如果(当前值<100){
inputField.value=当前值+1;
var x=item.querySelector('.total price').id;
resultField=item.querySelector('.result btn')。value=Number(x)*Number(inputField.value);
document.querySelector(“.total result input”).value=[].slice.call(document.queryselectoral(“.total price>input”)).reduce((acc,el)=>acc+parseInt(el.value),0)
}else inputField.value=100
});
});
const results=document.querySelectorAll('.result btn');
设total=0;
results.forEach((结果)=>{
总计+=结果值
});
document.querySelector('.total result input')。value=total代码>
购物袋总数:
共同项目
B高
白色
如果是函数式的解决方案,但是作为一个初学者,你能解释一下你写的代码吗?首先,每次点击后我们都需要计算和,这就是为什么我要在“点击”事件函数第二个[].slice.call(document.queryselectoral(“.total price>input”))中添加代码。acc+parseInt(el.value),0)求和所有元素的值
const results = document.querySelectorAll('.result-btn');
let total = 0;
results.forEach((result) => {
total += result.value
});
document.querySelector('.total-result-input').value = total;
document.querySelector('.total-result-input').value = [].slice.call(document.querySelectorAll(".total-price > input")).reduce((acc, el) => acc + parseInt(el.value), 0)