HTML .CSS JQUERY实现购物车页面特效(切换 删除 计算)

一、知识点准备

1)准备并配置好插件相关文件(css、js、图片)

(2)编写html和js代码

二、问题

遍历时出错

切换图标未实现

解决

查看老师代码

三、实现代码

.html jquery

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>购物车</title>
		<link href="css/common.css" rel="stylesheet"/>
		<link href="css/cart.css" rel="stylesheet"/>
		<script type="text/javascript">
			//删除
			function delTag(thisObj){
				if(confirm("确认从购物车中移除该商品")){
					var parentNode=thisObj.parentNode;
					var reprent=parentNode.parentNode;
					var grparent=reprent.parentNode;
					grparent.removeChild(reprent);
				}
			}
			//判断class是否存在
			function hasClass(elements, cName){
				return !!elements.className.match(new RegExp("(\\s/^)"+cName+"(\\s/$)"));
			}
			//切换class
			function toggleClass(elements,cName){
				if(hasClass(elements,cName)){
					elements.className=elements.className.replace(new RegExp("(\\s/^)"+cName+"(\\s/$)", ));
				}else{
					elements.className+=" "+cName;
				}
			}
			//选中状态切换
			function changeSelect(thisObj){
				toggleClass(thisObj, "active");
			}
		</script>
		<style>
			.tra td input{
				text-align: center;
				height: 40px;
				width: 40px;
				border: 1px solid black;
			}
		</style>
	</head>
	<body>
		<div class="all">
			<iframe class="iheader" src="header.html"></iframe>
			
			<div class="cars">
				<table>
					<tr class="tr1">
						<th>商品名称</th>
						<th>市场价</th>
						<th>定购价</th>
						<th>数量</th>
						<th>操作</th>
					</tr>
					<tr class="tra">
						<td>
							<a><img src="img/ico_checkout.png" style="width: 20px;height: 20px;margin-top: 15px;" onclick="changeSelect(this)"/></a>
							<span><img src="img/cake1_s1.jpg" style="width: 100px;height: 80px; margin-top: -20px;"/></span>
							<span>[悦轩饼家蛋糕]榴芒双拼(约2磅)一双拼蛋糕</span>
							</td>
						<td><p style="text-decoration: line-through; text-align: center;">¥298</p></td>
						<td style="text-align: center;">198</td>
						<td style="text-align: center;">
							<input class="jian" type="button" value="减"/><input class="num" type="text" value="1"/><input class="add" type="button" value="加"/>
						</td>
						<td style="text-align: center;">
							<a href="javascript:void(0)" class="delBtn" onclick="delTag(this)">删除</a>
						</td>
					</tr>
					<tr class="tra">
						<td>
							<a><img src="img/ico_checkout.png" style="width: 20px;height: 20px;margin-top: 15px;"/></a>
							<span><img src="img/cake2.jpg" style="width: 100px;height: 80px; margin-top: -20px;"/></span>
							<span>[悦轩饼家蛋糕]芒果千层(900g)</span>
							</td>
						<td><p style="text-decoration: line-through; text-align: center;">¥289</p></td>
						<td style="text-align: center;">169</td>
						<td style="text-align: center;">
							<input class="jian" type="button" value="减"/><input class="num" type="text" value="1"/><input class="add" type="button" value="加"/>
						</td>
						<td style="text-align: center;">
							<a href="javascript:void(0)" class="delBtn" onclick="delTag(this)">删除</a>
						</td>
					</tr>
					<tr class="tra">
						<td>
							<a><img src="img/ico_unchecked.png" style="width: 20px;height: 20px;margin-top: 15px;"/></a>
							<span><img src="img/cake3.jpg" style="width: 100px;height: 80px; margin-top: -20px;"/></span>
							<span>[悦轩饼家蛋糕]榴莲香雪(约2磅)一榴莲蛋糕</span>
							</td>
						<td><p style="text-decoration: line-through; text-align: center;">¥260</p></td>
						<td style="text-align: center;">149</td>
						<td style="text-align: center;">
							<input class="jian" type="button" value="减"/><input class="num" type="text" value="1"/><input class="add" type="button" value="加"/>
						</td>
						<td style="text-align: center;">
							<a href="javascript:void(0)" class="delBtn" onclick="delTag(this)">删除</a>
						</td>
					</tr>
				</table>
			</div>
			<div class="carx">
				<p class="carje" style="font-size: 12px;">应付金额:<span style="color: orange;font-weight: bold;">¥</span><span class="sum" style="color: orange;font-weight: bold;">516</span>
				<a style="color: aliceblue;font-weight: bold;width: 50px; height: 50px;
				 background-color: orange;border: 1px solid orangered;width: 50px;height: 48px;font-size: 19px;">去结算</a>
				</p>
			</div>
			<iframe class="ifooter" src="footer.html"></iframe>
		</div>
	</body>
	//计算价格
	<script src="js/jquery-3.6.0.min.js"></script>
	<script type="text/javascript">
		$(function(){
			//计算总金额
			function getSum(){
				var sum=0;
				//遍历获取到每一个对象
				$(".num").each(function(){
					//3.获取单价(打折):parent()找父标签,prev()找它前面的同级标签
					var price=$(this).parent().prev().text();
					//4.计算总价
					sum+=$(this).val()*price;
				});
				//5.把总价放入指定位置
				$(".sum").text(sum);
			}
			
			//单击减法按钮:减去右边的文本框里的数字-1
			$(".jian").click(function(){
				//1.获取文本框里的数字:next()找它后面的同级标签
				var num=$(this).next().val();
				//2.判断 当num=大于0时,才减-1
				if(num>0){
					//3.把数量文本框里的数字-1
					$(this).next().val(num-1);
					getSum();
				}
				
				// //3.
				// var price=$(this).parent().prev().text();
			});
			//加
			//单击加法按钮:减去右边的文本框里的数字+1
			$(".add").click(function(){
				//1.获取文本框里的数字:next()找它后面的同级标签
				var num=$(this).prev().val();
				//2.把数量文本框里的数字+1
				var n=parseInt(num);//把num变成int类型
				$(this).prev().val(n+1);
				getSum();
			});
			//
		});
	</script>
</html>

.css

.all{
	width:1300px;
	margin: auto;
	/* border: 1px solid red; */
}
.iheader{
	height: 80px;
}
iframe{
	width: 1230px;
}
#carbig{
	border: 1px dashed beige;
	width: 1100px;
	/* line-height: 800PX; */
}
table {
	font-size: 12px;
	border: 1px dashed black;
	width: 1200px;
	height: 400px;
	/* text-align: center; */
	border-collapse: collapse;
}
table th{
	/* border: 1px solid black; */
	/* text-align: center; */
}
table th td {
/* text-align: center; */
/* border: 1px blue solid; */
}
table tr td{
	/* border: 1px solid black; */
	/* text-align: center; */
}
table tr{
	border: 1px dashed gainsboro;
}
.carx{
	border: 1px dashed gainsboro;
	width: 1200px;
	line-height: 50px;
	margin-top: 10px;
/* 	line-height: 50px; */
}
.all .carx .carje{
	text-align:end;
	
}

.all .cars .tr1{
	border: 1px dashed gainsboro;
	background-color: gray;
}

猜你喜欢

转载自blog.csdn.net/qq_67519129/article/details/125474464