代码太多我就html上传一部分,商品内容可以复制添加,css代码我就不上传了,js有一部分代码很冗余做完后就不想优化了,大家都懂。思路:每一次点击让之前的价格清零,再从新开始算一遍。大家有更加简洁和好理解的思路和代码可以给我分享一下,谢谢。
<body>
<!-- 第一层 -->
<div class="commoditybar">
<!-- 上下两部分 -->
<div class="commodity-content">
<!-- 商品合集 -->
<div class="content-story">
<!-- 商品容器 -->
<div class="story-box">
<!-- 选中 -->
<input class="checkbox-select" type="checkbox">
<!-- 商品内容 -->
<div class="story-box-content">
<!-- 商品内容上 -->
<div class="story-box-content-top">
<img src="./img/baoshijie.webp" alt="">
<span>保时捷911</span>
</div>
<!-- 商品内容下 -->
<div class="story-box-content-bottom">
<div class="story-kinks">
<span>经典蓝</span><span>配置</span>
<div class="srory-price">
<span>¥</span>
<span class="srory-price-one">
199.5
</span>
<span>
/件
</span>
<!-- 单个商品价格合计 -->
<div class="calculate-price">
<input type="button" readonly value="-" class="calculate-price-lose">
<span class="total-price">0</span>
<input type="button" readonly value="+" class="calculate-price-add">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="content-story">
<!-- 商品容器 -->
<div class="story-box">
<!-- 选中 -->
<input class="checkbox-select" type="checkbox">
<!-- 商品内容 -->
<div class="story-box-content">
<!-- 商品内容上 -->
<div class="story-box-content-top">
<img src="./img/baoshijie.webp" alt="">
<span>保时捷911</span>
</div>
<!-- 商品内容下 -->
<div class="story-box-content-bottom">
<div class="story-kinks">
<span>经典蓝</span><span>配置</span>
<div class="srory-price">
<span>¥</span>
<span class="srory-price-one">
199.5
</span>
<span>
/件
</span>
<!-- 单个商品价格合计 -->
<div class="calculate-price">
<input type="button" readonly value="-" class="calculate-price-lose">
<span class="total-price">0</span>
<input type="button" readonly value="+" class="calculate-price-add">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="content-story">
<!-- 商品容器 -->
<div class="story-box">
<!-- 选中 -->
<input class="checkbox-select" type="checkbox">
<!-- 商品内容 -->
<div class="story-box-content">
<!-- 商品内容上 -->
<div class="story-box-content-top">
<img src="./img/baoshijie.webp" alt="">
<span>保时捷911</span>
</div>
<!-- 商品内容下 -->
<div class="story-box-content-bottom">
<div class="story-kinks">
<span>经典蓝</span><span>配置</span>
<div class="srory-price">
<span>¥</span>
<span class="srory-price-one">
199.5
</span>
<span>
/件
</span>
<!-- 单个商品价格合计 -->
<div class="calculate-price">
<input type="button" readonly value="-" class="calculate-price-lose">
<span class="total-price">0</span>
<input type="button" readonly value="+" class="calculate-price-add">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 商品总结价格 -->
<div class="connodity-totil">
<!-- 商品价格合计 -->
<div class="connondity-total-picre">
<div class="connondity-total-picre-left">
<input type="checkbox" class="select-all">
<span>全选</span>
<p>注:商品半年内保修</p>
</div>
<div class="connondity-total-picre-right">
<span>合计:¥</span><span class="total-allprice">0</span><span class="add-count">结算(0)</span>
</div>
</div>
</div>
<div class="twoweb">
<div>
<div class="twoweb-top">
<p>选择支付方式</p>
<div><img src="./img/weixinzhifu.png" alt=""><span>微信支付</span><img class="imgclick" src="./img/selecty.png" alt=""></div>
<div><img src="./img/zfb.png" alt=""><span>支付宝支付</span><img class="imgclick" src="./img/selectnwhite.png" alt=""></div>
</div>
<div class="twoweb-bootom">
<span class="divhidden">确定</span><div></div><span class="divhidden">取消</span>
</div>
</div>
</div>
</div>
</body>
//js部分
var oInput = document.getElementsByClassName("select-all")[0]
var aInput = document.getElementsByClassName("checkbox-select")
var aDid = document.getElementsByClassName("calculate-price")
var aDiv = document.getElementsByClassName("srory-price")
var aDiva = document.getElementsByClassName("content-story")
var span7 = document.getElementsByClassName("total-allprice")[0]
var imgclick = document.getElementsByClassName("imgclick")
var hidden = document.getElementsByClassName("divhidden")
var odiv2 = document.getElementsByClassName("twoweb")[0]
var arr1 = []
var arr2 = []
for (i = 0; i < aDiva.length; i++) {
arr1.push(aDiva[i].getElementsByClassName("calculate-price"))
arr2.push(aDiva[i].getElementsByClassName("srory-price"))
}
// var oSpan1 = aDiv.getElementsByClassName("srory-price-one")
var sSpan3 = document.getElementsByClassName("add-count")[0]
var countTatal = 0;
var priceTatal = 0;
// console.log(arr2)
oInput.onclick = function () {
for (let i = 0; i < aInput.length; i++) {
aInput[i].checked = oInput.checked
}
for (i = 0; i < aInput.length; i++) {
countTatal = 0
priceTatal = 0
for (let j = 0; j < arr1.length; j++) {
if (aInput[j].checked) {
for (let g = 0; g < arr1[j].length; g++) {
var span4 = arr1[j][g].getElementsByClassName("total-price")[0]
var span5 = arr2[j][g].getElementsByClassName("srory-price-one")[0]
countTatal += parseFloat(span4.innerHTML)
priceTatal += parseFloat(span4.innerHTML) * parseFloat(span5.innerHTML)
sSpan3.innerHTML = "结算(" + countTatal + ")"
span7.innerHTML = priceTatal
// console.log(priceTatal)
}
}
if (oInput.checked == false) {
countTatal = 0
sSpan3.innerHTML = "结算(" + countTatal + ")"
priceTatal = 0
span7.innerHTML = 0
}
}
}
}
sSpan3.οnclick=function(){
odiv2.style.display = "block"
}
function aClick(a) {
var two = a.getElementsByClassName("calculate-price")
// var aSpan2 = a.getElementsByClassName("calculate-price")
for (k = 0; k < two.length; k++) {
bclick(two[k])
}
function bclick(b) {
var count = 0;
var oLose = b.getElementsByClassName("calculate-price-lose")[0]
var oAdd = b.getElementsByClassName("calculate-price-add")[0]
var oSpan = b.getElementsByClassName("total-price")[0]
var aInput = document.getElementsByClassName("checkbox-select")
oAdd.onclick = function () {
// console.log("jia")
count++
oSpan.innerHTML = count
for (i = 0; i < aInput.length; i++) {
countTatal = 0
priceTatal = 0
for (let j = 0; j < arr1.length; j++) {
if (aInput[j].checked) {
for (let g = 0; g < arr1[j].length; g++) {
var span5 = arr2[j][g].getElementsByClassName("srory-price-one")[0]
var span4 = arr1[j][g].getElementsByClassName("total-price")[0]
countTatal += parseFloat(span4.innerHTML)
priceTatal += parseFloat(span4.innerHTML) * parseFloat(span5.innerHTML)
span7.innerHTML = priceTatal
sSpan3.innerHTML = "结算(" + countTatal + ")"
// console.log(countTatal)
}
}
}
}
}
oLose.onclick = function () {
// console.log("jian")
count--
if (count <= 0) {
count = 0
oSpan.innerHTML = count
} else {
oSpan.innerHTML = count
}
for (i = 0; i < aInput.length; i++) {
countTatal = 0
priceTatal = 0
for (let j = 0; j < arr1.length; j++) {
if (aInput[j].checked) {
for (let g = 0; g < arr1[j].length; g++) {
var span5 = arr2[j][g].getElementsByClassName("srory-price-one")[0]
var span4 = arr1[j][g].getElementsByClassName("total-price")[0]
countTatal += parseFloat(span4.innerHTML)
priceTatal += parseFloat(span4.innerHTML) * parseFloat(span5.innerHTML)
span7.innerHTML = priceTatal
sSpan3.innerHTML = "结算(" + countTatal + ")"
// console.log(countTatal)
}
}
}
}
}
}
}
for (let i = 0; i < aInput.length; i++) {
aClick(aDiva[i])
aInput[i].onclick = function () {
for (let i = 0; i < aInput.length; i++) {
countTatal = 0
priceTatal = 0
for (let j = 0; j < arr1.length; j++) {
if (aInput[j].checked) {
for (let g = 0; g < arr1[j].length; g++) {
var span5 = arr2[j][g].getElementsByClassName("srory-price-one")[0]
var span4 = arr1[j][g].getElementsByClassName("total-price")[0]
countTatal += parseFloat(span4.innerHTML)
priceTatal += parseFloat(span4.innerHTML) * parseFloat(span5.innerHTML)
span7.innerHTML = priceTatal
sSpan3.innerHTML = "结算(" + countTatal + ")"
// console.log(countTatal)
}
}
}
}
}
}
var oldimg = ""
for(i=0;i<imgclick.length;i++){
imgclick[i].οnclick=function(){
imgclick[0].src = "./img/selectnwhite.png"
oldimg.src = "./img/selectnwhite.png"
oldimg=this
this.src = "./img/selecty.png"
}
hidden[i].οnclick=function(){
odiv2.style.display = "none"
}
}