如何解决取消商品勾选时,应付金额减少?

如何解决取消商品勾选时,应付金额减少?

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>购物车功能实现</title>
		<link rel="stylesheet" type="text/css" href="new_file.css"/>
	</head>
	
	<body>
		<header>
			<div class="left">
				<img src="img/logo.png" alt="" />
			</div>
			<div class="nav">
				<ul>
					<li><a href="">课程</a></li>
					<li class="active"><a href="" >职业路径<span><img src="img/icon-new.png"/></span></a></li>
					<li><a href="">实战</a></li>
					<li><a href="">猿问</a></li>
					<li><a href="">手记</a></li>
				</ul>
			</div>
			<div class="right">
				<div class="xiaotubiao">
					<a href="" class="item item-bao"></a>
					<a href="" class="item item-linsheng"></a>
					<a href="" class="item item-touxiang"></a>
				</div>
				<div class="search">
					<input type="" name="" id="" value="" />
					<a href="seaech-btn"></a>
				</div>
			</div>
		</header>		
		<div class="banner"></div>
		
		<!--商品结算区域-->
		<div class="settlement">
			<div class="title">
				<p>我的购物车</p>
			</div>
			<!--有阴影的盒子-->
			<div class="boxshadow">
				<div class="top">
					<input type="checkbox"  name="" id="all"  checked="checked"/><label for="">全选</label>
					<span>商品名称</span>
					<span>总价</span>
					<span>单价</span>
					<span>数量</span>
					<span>操作</span>
				</div>
				<div class="container">
					<!--每条商品信息的容器-->
					<div class="Commodity-information">
						<input type="checkbox" class="checkbox" name="" id="itemchek" checked="checked" value=""/>
						<div class="images">
							<img src="img/g1.jpg"/>
						</div>
						<span>前端小白成长记</span>
						<span >¥<e id="total">396</e></span>
						<span >¥<e id="unitPrice">396</e></span>
						<span>
							<a href="#" id="subtract">-</a>
							<input type="text" name="" class="one" id="number" value="1" />
							<a href="#" id="add">+</a>
						</span>
						<span><a href="#" id="delect">删除</a></span>
					</div>
					<div class="Commodity-information">
						<input type="checkbox" name="" class="checkbox" id="itemchek" checked="checked" value=""/>
						<div class="images">
							<img src="img/g2.jpg"/>
						</div>
						<span>前端小白成长记</span>
						<span>¥<e id="total">396</e></span>
						<span >¥<e id="unitPrice">396</e></span>
						<span>
							<a href="#" id="subtract">-</a>
							<input type="text" name="" id="number" value="1" />
							<a href="#" id="add" >+</a>
						</span>
						<span><a href="#" id="delect">删除</a></span>
					</div>
					<div class="Commodity-information">
						<input type="checkbox" name="" class="checkbox" id="itemchek" checked="checked" value=""/>
						<div class="images">
							<img src="img/g1.jpg"/>
						</div>
						<span>前端小白成长记</span>
						<span>¥<e id="total">396</e></span>
						<span>¥<e id="unitPrice">396</e></span>
						<span>
							<a href="#" id="subtract">-</a>
							<input type="text" name="" id="number" value="1" />
							<a href="#" id="add">+</a>
						</span>
						<span><a href="#" id="delect">删除</a></span>		
					</div>	
					<div class="Commodity-information">
						<input type="checkbox" name="" class="checkbox" id="itemchek" checked="checked" value=""/>
						<div class="images">
							<img src="img/g1.jpg"/>
						</div>
						<span>前端小白成长记</span>
						<span>¥<e id="total">396</e></span>
						<span>¥<e id="unitPrice">396</e></span>
						<span>
							<a href="#" id="subtract">-</a>
							<input type="text" name="" id="number" value="1" />
							<a href="#" id="add">+</a>
						</span>
						<span><a href="#" id="delect">删除</a></span>
					</div>
				</div>	
			</div>
			<div class="bottom">
				<p>应付金额: <span class="red">¥1584</span> <a href="">去结算</a></p>
			</div>
		</div>
		<!--footer区域-->
		<div class="clear">
			
		</div>
		<footer>
			<div class="footer-box">
				<div class="footer-link">
					<a href="#" class="footer-link__item">网站首页</a>
					<a href="#" class="footer-link__item">企业合作</a>
					<a href="#" class="footer-link__item">人才招聘</a>
					<a href="#" class="footer-link__item">联系我们</a>
					<a href="#" class="footer-link__item">讲师招募</a>
					<a href="#" class="footer-link__item">常见问题</a>
					<a href="#" class="footer-link__item">意见反馈</a>
					<a href="#" class="footer-link__item">慕课大学</a>
					<a href="#" class="footer-link__item">友情链接</a>
				</div>
				<div class="footer__copy">Copyright © 2016 imooc.com All Rights Reserved | 京ICP备 13046642号-2</div>
				
				<div class="footer-share">
					<a href="#" class="footer-share__item footer-share__item_i_1"></a>
					<a href="#" class="footer-share__item footer-share__item_i_2"></a>
					<a href="#" class="footer-share__item footer-share__item_i_3"></a>
				</div>
			</div>
		</footer>
	
	<script src="new_file.js" type="text/javascript" charset="utf-8"></script>
	</body>
</html>
*{
	margin: 0;
	padding: 0;
}
header{
	width: 100%;
	background-color:#000000;
	height: 60px;
}
header .left{
	float: left;
	margin-top: 10px;
	margin-left: 27px;
	margin-right: 25px;
}
header .nav {
	float: left;
	color:#F1F1F1;
	font-size: 16px;
	
}
header .nav ul li{
	float: left;
	list-style: none;
	padding: 19px 25px;
	text-align: center;
	
}
header .nav ul li a{
	text-decoration: none;
	color: white;
	position: relative;
	text-align: center;
}
header .nav ul .active{
	background:#363c41;
}
header .nav ul li a span{
	position: absolute;
	top: -7px;
}
header .nav ul li:hover{
	background:#363c41;
	cursor: pointer;
}
header .right{
	float: right;
}
header .right .xiaotubiao{
	float: right;
	height: 60px;
}
header .right .xiaotubiao a{
	display: inline-block;
	width: 20px;
	height: 20px;
	background: url(img/icon-1-sprite_w22.png);
	margin:20px 25px;
	background-repeat: no-repeat;
}
header .right .xiaotubiao .item-bao{
	background: url(img/icon-1-sprite_w22.png) 0px 110px;
}
header .right .xiaotubiao .item-linsheng{
	background: url(img/icon-1-sprite_w22.png) 0px 42px;
}
header .right .xiaotubiao .item-touxiang{
	background: url(img/ava.jpg) no-repeat;
	height: 40px;
	width: 40px;
	border-radius:50% ;
	background-size: 100%;
	margin: 10px;
}
header .search{
	float: right;
	position:relative;
}
header .search:after{
	content: "前端入门";
	height: 30px;
	width: 70px;
	text-align: center;
	background: #2a353a;
	color: #5b666b;
	position: absolute;
	top: 15px;
	line-height: 30px;
}
header .search input{
	height: 40px;
	width: 268px;
	border: none;
	border-bottom:1px solid #616667;
	background: #000000;
	margin-top: 10px;
	margin-right: 25px;
}
header .search  a{
	background: url(img/icon-1-sprite_w22.png);
	width: 20px;
	height: 20px;
	position: absolute;
	display: inline-block;
	right: 30px;
	top: 20px;
}
.banner{
	width: 100%;
	height: 160px;
	background: url(img/cart-header-bg.jpg);
}

/*商品结算区域*/
.settlement{
	width:70%;
	margin:-125px  auto;
	/*border: 1px solid red;*/
}
.settlement .title{
	font-size: 30px;
}
.settlement .boxshadow{
	margin-top:25px ;
	box-shadow:0px 0px 15px rgba(96,96,96,0.5);
}
.settlement .boxshadow .top{
	height: 60px;
	line-height: 60px;
	background: #ebebeb;
	padding-left:20px ;
	position: relative;
	color: #616161;
	font-weight:600;
}
/*灰色的头条*/
.settlement .boxshadow .top input{
	margin-right: 10px;
}
.settlement .boxshadow .top span{
	position: absolute;
}
.settlement .boxshadow .top span:nth-of-type(1){
	margin-left: 30px;
}
.settlement .boxshadow .top span:nth-of-type(2){
	left: 41%;
}
.settlement .boxshadow .top span:nth-of-type(3){
	left: 51%;
}
.settlement .boxshadow .top span:nth-of-type(4){
	left: 62%;
}
.settlement .boxshadow .top span:nth-of-type(5){
	right: 70px;
}

/*商品内容区域*/
.settlement .boxshadow .container .Commodity-information{
	height: 120px;
	line-height:120px;
	padding-left:20px ;
	position: relative;
	color:#8e9299 ;
	border-bottom: 1px solid #8e9299;
	
}
.settlement .boxshadow .container .Commodity-information input{
	margin-right: 10px;
}
.settlement .boxshadow .container .Commodity-information .images{
	width: 160px;
	height: 120px;
	/*display: inline-block;
	background: url(img/g1.jpg);*/
	position: absolute;
	left: 50px;
	top: 10px;
}
.settlement .boxshadow .container .Commodity-information span{
	position: absolute;
}
.settlement .boxshadow .container .Commodity-information span:nth-of-type(1){
	margin-left:20%;
}
.settlement .boxshadow .container .Commodity-information span:nth-of-type(2){
	left: 40%;
}
.settlement .boxshadow .container .Commodity-information span:nth-of-type(3){
	left: 50%;
}
.settlement .boxshadow .container .Commodity-information span:nth-of-type(4){
	left: 60%;
}
.settlement .boxshadow .container .Commodity-information span:nth-of-type(5){
	right: 70px;
}
.settlement .boxshadow .container .Commodity-information span:nth-of-type(4) input{
	width: 50px;
}
.settlement .boxshadow .container .Commodity-information a{
	text-decoration: none;
	color: #8e9299;
}
/*总金额结算区域*/
.settlement .bottom{
	height: 50px;
	border: 1px solid #8e9299;
	border-right: none;
	margin-top:20px ;
	line-height: 50px;
	text-align: right;
}
.settlement .bottom a{
	text-decoration: none;
	display:inline-block;
	font-size: 20px;
	padding:0 30px;
	color: white;
	background: red;
	height: 50px;
}
.red{
	color: red;
	font-weight: bold;
}
/*footer区域*/
footer{
	height: 96px;
	background: #000000;
	color: #7c7c7c;
	margin-top: 160px;
}
.footer-box{
	margin: 0 auto;
	width: 70%;
	position: relative;
}
footer .footer-box .footer-link{
	/*float: left;*/
	/*line-height: 96px;*/
	position: absolute;
	left: 0;
	top: 30px;
	width: 700px;
}
footer .footer-box .footer-link a{
	display: inline-block;
	text-decoration: none;
	color:#9f9f9f;
	font-size: 13px;
	margin-right:1.5%;
}
footer .footer-box .footer-link a:hover{
	color: red;
}
footer .footer-box .footer__copy{
	float: left;
	font-size: 12px;
	height: 96px;
	line-height: 120px;
}
footer .footer-share{
	width: 180px;
    height: 36px;
    float: right;
    margin-top: 30px;
}
footer .footer-share .footer-share__item{
    display: inline-block;
    width: 36px;
    height: 36px;
    margin-left: 12px;
    background-image: url(img/footer-sprite.png);
    background-repeat: no-repeat;
} 
footer .footer-share .footer-share__item_i_1{
	background-position: 0px -278px;
	position: relative;
}
footer .footer-share .footer-share__item_i_1:hover::after{
	content: "";
	display: block;
	width: 160px;
	height: 220px;
	background: url(img/footer-sprite.png);
	position: absolute;
	top: -220px;
	left: -70px;
}
footer .footer-share .footer-share__item_i_2{
	background-position: 0px -320px;
}
footer .footer-share .footer-share__item_i_3{
	background-position: 0px -362px;
}
(function(){
	var box=document.getElementsByClassName("Commodity-information")
	var all = document.getElementById("all")
	var checkbox=document.querySelectorAll('#itemchek');
	var add=document.querySelectorAll('#add')
	var subtract=document.querySelectorAll('#subtract')
	var numbers=document.querySelectorAll('#number')
	var delect=document.querySelectorAll('#delect')
	var CommodityInformation=document.querySelectorAll('.Commodity-information')
	var total=document.querySelectorAll('#total')
	var unitPrice=document.querySelectorAll('#unitPrice')
	var jiesuan=document.querySelector('.red')
//	var one = document.getElementsByClassName('one')
//	var index=0;
//	console.log(one)
//	console.log(one.value)
//	console.log(add)
	all.onclick=function(){
		//点击全选按钮所有商品都会被勾上
		if(this.checked){
			for(var i=0 ; i<checkbox.length;i++){
				checkbox[i].checked=true
			}
		}else{
			for(var i=0 ; i<checkbox.length;i++){
				checkbox[i].checked=false
			}
		}	
	}
	
		
	
	for(var i=0;i<add.length;i++){
		(function(i){  //把每次i的值保存下来	
			index=i
			var j=0		
			
			add[i].onclick=function(e){
				//阻止默认事件
				e.preventDefault()
				numbers[i].value++
				//每点击所对应商品的总价
				shopmoney(i,unitPrice,numbers)
				//所有商品加起来的价格
				money(i,total)			
			}
			//减号事件,计算当前商品的总金额,并且计算所有商品的总金额
			subtract[i].onclick=function(e){
				e.preventDefault()
				numbers[i].value--
//				if(numbers[i].checked==false){
//					numbers[i].value=0
//				}
				if(numbers[i].value<1){
					numbers[i].value=1
					return;
				}
				//每点击所对应商品的总价
				shopmoney(i,unitPrice,numbers)
				//判断当商品数量小于1的时候等于1
				
				//所有商品加起来的价格
				money(i,total)
			}
			
			//删除
			delect[i].onclick=function(e){
				e.preventDefault()
				CommodityInformation[i].style.display="none";	
				
			}
			
			//当所有商品选中时全选按钮才会勾起来
			checkbox[i].onclick=function(){
				if(checkbox[0].checked&&checkbox[1].checked&&checkbox[2].checked&&checkbox[3].checked){
					all.checked=true
				}else{
					all.checked=false
				}
			}
			
			
			
		})(i)	
		
	}
	//每点击所对应商品的总价
	function shopmoney(index,unitPrice,numbers){
		total[index].innerHTML=parseInt(parseInt(unitPrice[index].innerHTML)*parseInt(numbers[index].value))
	}
			
	//所有商品加起来的价格
	function money(index,total){
		var sum=0
		for(var index=0;index<CommodityInformation.length;index++){
			sum=+sum+ +total[index].innerHTML
		}
		jiesuan.innerHTML="¥"+sum
	}
	
	
})()


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

你好,测试了同学的代码,建议在计算应付金额和总价的函数中不传入参数,这样不好控制,老师把其他代码都注释掉了,单独写的商品按钮的点击事件,可以参考一下:

http://img1.sycdn.imooc.com//climg/5c661ddc0001f31809860701.jpg

其他逻辑事件可以参考这个来写,自己试试吧。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师