jquery 修改购物车小计,添加加减功能

在这里插入图片描述

<!DOCTYPE html>
<html lang="zh-CN">

	<head>
		<meta charset="UTF-8">
		<title>我的购物车-品优购</title>
		<link rel="stylesheet" href="css/base.css">
		<link rel="stylesheet" href="css/common.css">
		<link rel="stylesheet" href="css/car.css">
		<script src="js/jquery-3.5.1.min.js"></script>
	</head>

	<body>

		<div class="car-header">
			<div class="w">
				<div class="car-logo">
					<img src="img/logo.png" alt="">
					<b>购物车</b>
				</div>
			</div>
		</div>

		</div>
		<div class="c-container">
			<div class="w">
				<div class="cart-filter-bar">
					<em>全部商品</em>
				</div>
				<!-- 购物车主要核心区域 -->
				<div class="cart-warp">
					<!-- 头部全选模块 -->
					<div class="cart-thead">
						<div class="t-checkbox">
							<input type="checkbox" name="" id="" class="checkall"> 全选
						</div>
						<div class="t-goods">商品</div>
						<div class="t-price">单价</div>
						<div class="t-num">数量</div>
						<div class="t-sum">小计</div>
						<div class="t-action">操作</div>
					</div>
					<!-- 商品详细模块 -->
					<div class="cart-item-list">
						<div class="cart-item check-cart-item">
							<div class="p-checkbox">
								<input type="checkbox" name="" id="" checked class="j-checkbox">
							</div>
							<div class="p-goods">
								<div class="p-img">
									<img src="upload/p1.jpg" alt="">
								</div>
								<div class="p-msg">【5本26.8元】经典儿童文学彩图青少版八十天环游地球中学生语文教学大纲</div>
							</div>
							<div class="p-price">¥12.60</div>
							<div class="p-num">
								<div class="quantity-form">
									<a href="javascript:;" class="decrement">-</a>
									<input type="text" class="itxt" value="1">
									<a href="javascript:;" class="increment">+</a>
								</div>
							</div>
							<div class="p-sum">¥12.60</div>
							<div class="p-action">
								<a href="javascript:;">删除</a>
							</div>
						</div>
						<div class="cart-item">
							<div class="p-checkbox">
								<input type="checkbox" name="" id="" class="j-checkbox">
							</div>
							<div class="p-goods">
								<div class="p-img">
									<img src="upload/p2.jpg" alt="">
								</div>
								<div class="p-msg">【2000张贴纸】贴纸书 3-6岁 贴画儿童 贴画书全套12册 贴画 贴纸儿童 汽</div>
							</div>
							<div class="p-price">¥24.80</div>
							<div class="p-num">
								<div class="quantity-form">
									<a href="javascript:;" class="decrement">-</a>
									<input type="text" class="itxt" value="1">
									<a href="javascript:;" class="increment">+</a>
								</div>
							</div>
							<div class="p-sum">¥24.80</div>
							<div class="p-action">
								<a href="javascript:;">删除</a>
							</div>
						</div>
						<div class="cart-item">
							<div class="p-checkbox">
								<input type="checkbox" name="" id="" class="j-checkbox">
							</div>
							<div class="p-goods">
								<div class="p-img">
									<img src="upload/p3.jpg" alt="">
								</div>
								<div class="p-msg">唐诗三百首+成语故事全2册 一年级课外书 精装注音儿童版 小学生二三年级课外阅读书籍</div>
							</div>
							<div class="p-price">¥29.80</div>
							<div class="p-num">
								<div class="quantity-form">
									<a href="javascript:;" class="decrement">-</a>
									<input type="text" class="itxt" value="1">
									<a href="javascript:;" class="increment">+</a>
								</div>
							</div>
							<div class="p-sum">¥29.80</div>
							<div class="p-action">
								<a href="javascript:;">删除</a>
							</div>
						</div>
					</div>

				</div>
				<!-- 结算模块 -->
				<div class="cart-floatbar">
					<div class="select-all">
						<input type="checkbox" name="" id="" class="checkall">全选
					</div>
					<div class="operation">
						<a href="javascript:;" class="remove-batch"> 删除选中的商品</a>
						<a href="javascript:;" class="clear-all">清理购物车</a>
					</div>
					<div class="toolbar-right">
						<div class="amount-sum">已经选<em>1</em>件商品</div>
						<div class="price-sum">总价: <em>¥12.60</em></div>
						<div class="btn-area">去结算</div>
					</div>
				</div>
			</div>

		</div>

	</body>
	<script>
        $(function () {
            // 1. 全选 全不选功能模块
            // 就是把全选按钮(checkall)的状态赋值给 三个小的按钮(j-checkbox)就可以了
            // 事件可以使用change
            $(".checkall").change(function () {
                // console.log($(this).prop("checked"));
                $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));
            });
            // 2. 如果小复选框被选中的个数等于3 就应该把全选按钮选上,否则全选按钮不选。
            $(".j-checkbox").change(function () {
                // if(被选中的小的复选框的个数 === 3) {
                //     就要选中全选按钮
                // } else {
                //     不要选中全选按钮
                // }
                // console.log($(".j-checkbox:checked").length);
                // $(".j-checkbox").length 这个是所有的小复选框的个数
                if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
                    $(".checkall").prop("checked", true);
                } else {
                    $(".checkall").prop("checked", false);
                }
            });
            /*增减商品*/
            /*点击一个按钮,他的兄弟数值发生变化*/
            $('.increment').click(function () {
                var num = $(this).siblings('.itxt').val();
                console.log(num);
                num++;
                $(this).siblings('.itxt').val(num);
                /*修改小计*/
                var p = $(this).parent().parent().siblings('.p-price').html().substr(1);
                console.log(p)
                $(this).parent().parent().siblings('.p-sum').html('¥'+(p*num)   .toFixed(2))
            })
            $('.decrement').click(function () {
                var num = $(this).siblings('.itxt').val();
                console.log(num);
                if (num > 1)
                    num--;
                $(this).siblings('.itxt').val(num);
                /*修改小计*/
                var p = $(this).parent().parent().siblings('.p-price').html().substr(1);
                console.log(p)
                $(this).parent().parent().siblings('.p-sum').html('¥'+(p*num).toFixed(2))
            })
	        /*修改小计*/
        })
	</script>

</html>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jQuery 是一个流行的 JavaScript 框架,它简化了 HTML 文档遍历、事件处理、动画和Ajax交互等任务。使用 jQuery 实现购物车的基本功能,通常会涉及以下几个步骤: 1. **添加商品到购物车**: - 创建一个或多个HTML元素表示商品,包含名称、价格和“加入购物车”按钮。 - 给按钮添加点击事件,当点击时,使用$.ajax调用服务器端API将商品信息添加购物车中。 ```javascript $(".add-to-cart").click(function() { var item = $(this).data("item"); $.ajax({ url: "add-to-cart.php", type: "POST", data: { item: item }, success: function(response) { // 更新购物车显示 }, error: function(xhr, status, error) { console.error(error); } }); }); ``` 2. **显示购物车内容**: - 可以通过查询服务器获取当前用户的购物车信息,并使用jQuery动态渲染到页面上。 ```javascript function fetchCart() { $.ajax({ url: "get-cart.php", success: function(cartItems) { $("#cart").html(cartItems); }, error: function(xhr, status, error) { console.error(error); } }); } // 初始加载购物车,或者在用户登录后刷新购物车数据 fetchCart(); ``` 3. **删除购物车中的商品**: - 为购物车列表中的每个商品项添加删除按钮,同样使用$.ajax发送请求到服务器。 ```javascript $(".delete-from-cart").click(function() { var itemId = $(this).data("itemId"); $.ajax({ url: "delete-item.php", type: "POST", data: { itemId: itemId }, success: function(response) { // 更新购物车显示 fetchCart(); }, error: function(xhr, status, error) { console.error(error); } }); }); ``` 4. **结算与计价**: - 需要计算购物车总价,可能需要实时更新或在用户完成购物车操作时执行。 ```javascript function calculateTotal() { var total = 0; $("#cart .item-price").each(function() { total += parseInt($(this).text()); }); $("#total-price").html(total); } // 在商品数量变化或添加/删除商品后更新总价格 $("#cart").on("change", ".item-quantity", function() { calculateTotal(); }); // 在用户添加商品或删除后重新计算 fetchCart().then(calculateTotal); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值