使用JS实现当当购物车结算页面

  • Post author:
  • Post category:其他


实现效果:

1、添加、减少商品数量,总价随之改变;

2、点击删除,删除所选的商品;

3、点击关闭,关闭当前页面。

实现的效果图:

以下就是使用代码:

CSS:

            #imgs {
				width: 100px;
				height: 150px;
			}

			.box {
				width: 800px;
				height: 500px;
				border: 1px solid gray;
				margin: 0 auto;
			}

			#clo {
				float: right;
				background-color: red;
			}

			#settlement {
				float: right;
				background-color: red;
			}

HTML:

<div class="box">
			<img src="./images/dd_logo.jpg" alt="">
			<button id="clo">关闭</button>
			<table border="0" cellspacing="0" cellpadding="10">
				<thead>
					<tr>
						<th>商品图片</th>
						<th>商品信息</th>
						<th>单价</th>
						<th>数量</th>
						<th>总价</th>
						<th>操作</th>
					</tr>
				</thead>
				<tbody>
					<tr>
						<td><img id="imgs" src="./images/dog.jpg" alt=""></td>
						<td>我和狗狗活了下来</td>
						<td>¥21.90</td>
						<td>
							<button class="active">-</button>
							<input type="text" value="1">
							<button class="active">+</button>
						</td>
						<td>21.90</td>
						<td><button class="del">移入收藏<br>删除</button></td>
					</tr>
					<tr>
						<td><img id="imgs" src="./images/mai.jpg" alt=""></td>
						<td>灰霾来了怎么办</td>
						<td>¥24.00</td>
						<td>
							<button class="active">-</button>
							<input type="text" value="1">
							<button class="active">+</button>
						</td>
						<td>24.00</td>
						<td><button class="del">移入收藏<br>删除</button></td>
					</tr>
				</tbody>
				<tfoot>
					<tr>
						<td colspan="6">
							总价:
							<button id="sum">结算</button>
						</td>
					</tr>
				</tfoot>
		</div>

JS:

//获取所有加减button
			var _buttons = document.querySelectorAll(".active");
			_buttons.forEach(function(btn) {
				btn.onclick = function() {
					//实际参数
					cal(this, this.innerText);
				}
			})


			//单个tr的小计
			// tag:点击的按钮
			// params:加号或减号
			function cal(tag, params) {
				//数量
				var num = tag.parentNode.children[1].value * 1;
				//改变数量
				num = eval(num + params + 1);
				if (num < 0) {
					alert("当前数量已经为0!");
					return;
				}
				//从新放入input
				tag.parentNode.children[1].value = num;

				//单价
				var unitPrice = tag.parentNode.previousElementSibling.innerText;
				unitPrice = unitPrice.slice(1);
				//总计
				var total = num * unitPrice;
				total = total.toFixed(2); //保留两位小数
				tag.parentNode.nextElementSibling.innerText = total;

				//重新计算总计
				sum();
			}


			//总计
			var _dels = document.querySelectorAll("tbody .del");
			var _sum = document.querySelector("#sum");

			function sum() {
				var _trs = document.querySelectorAll("tbody tr");
				var sum = 0; //总计
				Array.from(_trs).forEach(function(tag) {
					console.log(tag.children[4]);
					//获取小计
					var tal = tag.children[4].innerText * 1;
					sum += tal;
				})
				_sum.innerText = sum;
			}

			_dels.forEach(function(tag) {
				tag.onclick = function() {
					if (confirm("确认删除吗")) {
						tag.parentNode.parentNode.remove();
					}
					sum();
				}
			})



版权声明:本文为weixin_63112037原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。