jquery-防多店铺购物车结算全选,单选,及删除,价格计算

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>购物车结算</title>
    <style>
        *{padding::0; margin:0; font-family:"微软雅黑"}
        .one-shop,.all-total{padding:20px; width:400px; margin:auto}
        .one-goods{height:35px; line-height:35px}
        .goods-msg,.goods-price{float:left; padding:0 10px 0 0}
        .goods-check{width:15px; height:15px}
        .am-num-text{width:50px; text-align:center}
        .shop-total,.all-total{height:50px; line-height:50px}
        .all-del{
            width: 400px;
            display: flex;
            margin: auto;
        }
        #AllDel{
            display: inline-block;
            background: #FF0000;
            color: #FFFFFF;
            width: 60px;
            height: 30px;
            line-height: 30px;
            text-align: center;
        }
    </style>
</head>
<body>
    <!-- 一个店铺 -->
    <div class="one-shop">
        <!-- 一个商品 -->
        <div class="one-goods">
            <div class="goods-msg">
                <input type="checkbox" class="goods-check GoodsCheck">
                <button type="button" class="minus">-</button>
                <input type="text" class="am-num-text" value="1"/>
                <button type="button" class="plus">+</button>
            </div>
            <div class="goods-price">
                单价:¥<span class="shop-total-amount GoodsPrice">20.00</span>
            </div>
        </div>
        <!-- 一个商品 -->
        <div class="one-goods">
            <div class="goods-msg">
                <input type="checkbox" class="goods-check GoodsCheck">
                <button type="button" class="minus">-</button>
                <input type="text" class="am-num-text" value="1"/>
                <button type="button" class="plus">+</button>
            </div>
            <div class="goods-price">
                单价:¥<span class="shop-total-amount GoodsPrice">9.90</span>
            </div>
        </div>
        <!-- 一个商品 -->
        <div class="one-goods">
            <div class="goods-msg ">
                <input type="checkbox" class="goods-check GoodsCheck">
                <button type="button" class="minus">-</button>
                <input type="text" class="am-num-text" value="1"/>
                <button type="button" class="plus">+</button>
            </div>
            <div class="goods-price">
                单价:¥<span class="shop-total-amount GoodsPrice">10.00</span>
            </div>
        </div>
        <!-- 店铺合计 -->
        <div class="shop-total">
            <input type="checkbox" class="goods-check ShopCheck">店铺全选&nbsp;&nbsp;&nbsp;&nbsp;
            本店合计:¥<span class="shop-total-amount ShopTotal">0</span>
        </div>
    </div>
    <!-- 一个店铺 -->
    <div class="one-shop">
        <!-- 一个商品 -->
        <div class="one-goods">
            <div class="goods-msg">
                <input type="checkbox" class="goods-check GoodsCheck">
                <button type="button" class="minus">-</button>
                <input type="text" class="am-num-text" value="1"/>
                <button type="button" class="plus">+</button>
            </div>
            <div class="goods-price">
                单价:¥<span class="shop-total-amount GoodsPrice">20.00</span>
            </div>
        </div>
        <!-- 一个商品 -->
        <div class="one-goods">
            <div class="goods-msg">
                <input type="checkbox" class="goods-check GoodsCheck">
                <button type="button" class="minus">-</button>
                <input type="text" class="am-num-text" value="1"/>
                <button type="button" class="plus">+</button>
            </div>
            <div class="goods-price">
                单价:¥<span class="shop-total-amount GoodsPrice">9.90</span>
            </div>
        </div>
        <!-- 一个商品 -->
        <div class="one-goods">
            <div class="goods-msg ">
                <input type="checkbox" class="goods-check GoodsCheck">
                <button type="button" class="minus">-</button>
                <input type="text" class="am-num-text" value="1"/>
                <button type="button" class="plus">+</button>
            </div>
            <div class="goods-price">
                单价:¥<span class="shop-total-amount GoodsPrice">10.00</span>
            </div>
        </div>
        <!-- 店铺合计 -->
        <div class="shop-total">
            <input type="checkbox" class="goods-check ShopCheck">店铺全选&nbsp;&nbsp;&nbsp;&nbsp;
            本店合计:¥<span class="shop-total-amount ShopTotal">0</span>
        </div>
    </div>
    <!-- 一个店铺 -->
    <div class="one-shop">
        <!-- 一个商品 -->
        <div class="one-goods">
            <div class="goods-msg">
                <input type="checkbox" class="goods-check GoodsCheck">
                <button type="button" class="minus">-</button>
                <input type="text" class="am-num-text" value="1"/>
                <button type="button" class="plus">+</button>
            </div>
            <div class="goods-price">
                单价:¥<span class="shop-total-amount GoodsPrice">20.00</span>
            </div>
        </div>
        <!-- 一个商品 -->
        <div class="one-goods">
            <div class="goods-msg">
                <input type="checkbox" class="goods-check GoodsCheck">
                <button type="button" class="minus">-</button>
                <input type="text" class="am-num-text" value="1"/>
                <button type="button" class="plus">+</button>
            </div>
            <div class="goods-price">
                单价:¥<span class="shop-total-amount GoodsPrice">9.90</span>
            </div>
        </div>
        <!-- 一个商品 -->
        <div class="one-goods">
            <div class="goods-msg ">
                <input type="checkbox" class="goods-check GoodsCheck">
                <button type="button" class="minus">-</button>
                <input type="text" class="am-num-text" value="1"/>
                <button type="button" class="plus">+</button>
            </div>
            <div class="goods-price">
                单价:¥<span class="shop-total-amount GoodsPrice">10.00</span>
            </div>
        </div>
        <!-- 店铺合计 -->
        <div class="shop-total">
            <input type="checkbox" class="goods-check ShopCheck">店铺全选&nbsp;&nbsp;&nbsp;&nbsp;
            本店合计:¥<span class="shop-total-amount ShopTotal">0</span>
        </div>
    </div>
    <!-- 总计 -->
    <div class="all-total">
        <input type="checkbox" class="goods-check" id="AllCheck">全选&nbsp;&nbsp;&nbsp;&nbsp;
        总价合计:¥<span class="shop-total-amount" id="AllTotal">0</span>
    </div>
    <!--删除-->
    <div class="all-del">
        <a id="AllDel">删除</a>
    </div>
<script src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
<script>
  // 数量减
  $(".minus").click(function() {
    var t = $(this).parent().find(‘.am-num-text‘);
    t.val(parseInt(t.val()) - 1);
    if (t.val() <= 1) {
      t.val(1);
    }
    TotalPrice();
  });
  // 数量加
  $(".plus").click(function() {
    var t = $(this).parent().find(‘.am-num-text‘);
    t.val(parseInt(t.val()) + 1);
    if (t.val() <= 1) {
      t.val(1);
    }
    TotalPrice();
  });
  // 点击商品按钮
  $(".GoodsCheck").click(function() {
    var goods = $(this).closest(".one-shop").find(".GoodsCheck"); //获取本店铺的所有商品
    var goodsC = $(this).closest(".one-shop").find(".GoodsCheck:checked"); //获取本店铺所有被选中的商品
    var Shops = $(this).closest(".one-shop").find(".ShopCheck"); //获取本店铺的全选按钮
    if (goods.length == goodsC.length) { //如果选中的商品等于所有商品
      Shops.prop(‘checked‘, true); //店铺全选按钮被选中
      if ($(".ShopCheck").length == $(".ShopCheck:checked").length) { //如果店铺被选中的数量等于所有店铺的数量
        $("#AllCheck").prop(‘checked‘, true); //全选按钮被选中
        TotalPrice();
      } else {
        $("#AllCheck").prop(‘checked‘, false); //else全选按钮不被选中
        TotalPrice();
      }
    } else { //如果选中的商品不等于所有商品
      Shops.prop(‘checked‘, false); //店铺全选按钮不被选中
      $("#AllCheck").prop(‘checked‘, false); //全选按钮也不被选中
      // 计算
      TotalPrice();
      // 计算
    }
  });
  // 点击店铺按钮
  $(".ShopCheck").change(function() {
    if ($(this).prop("checked") == true) { //如果店铺按钮被选中
      $(this).parents(".one-shop").find(".goods-check").prop(‘checked‘, true); //店铺内的所有商品按钮也被选中
      if ($(".ShopCheck").length == $(".ShopCheck:checked").length) { //如果店铺被选中的数量等于所有店铺的数量
        $("#AllCheck").prop(‘checked‘, true); //全选按钮被选中
        TotalPrice();
      } else {
        $("#AllCheck").prop(‘checked‘, false); //else全选按钮不被选中
        TotalPrice();
      }
    } else { //如果店铺按钮不被选中
      $(this).parents(".one-shop").find(".goods-check").prop(‘checked‘, false); //店铺内的所有商品也不被全选
      $("#AllCheck").prop(‘checked‘, false); //全选按钮也不被选中
      TotalPrice();
    }
  });
  // 点击全选按钮
  $("#AllCheck").click(function() {
    if ($(this).prop("checked") == true) { //如果全选按钮被选中
      $(".goods-check").prop(‘checked‘, true); //所有按钮都被选中
      TotalPrice();
    } else {
      $(".goods-check").prop(‘checked‘, false); //else所有按钮不全选
      TotalPrice();
    }
    $(".ShopCheck").change(); //执行店铺全选的操作
  });
  //点击删除
  $(‘#AllDel‘).click(function(){
     $(".GoodsCheck:checked").each(function() { // 遍历选中的商品checkbox
        var goods = $(this).closest(".one-shop").find(".GoodsCheck"); //获取本店铺的所有商品
        var goodsC = $(this).closest(".one-shop").find(".GoodsCheck:checked"); //获取本店铺所有被选中的商品
        var Shops = $(this).closest(".one-shop").find(".ShopCheck"); //获取本店铺的全选按钮
         if (goods.length == goodsC.length) { //如果选中的商品等于所有商品
            Shops.prop(‘checked‘, true); //店铺全选按钮不被选中
            $(this).closest(".one-shop").remove();
            TotalPrice();
         } else { //如果选中的商品不等于所有商品
         var n = $(this).parents(‘.one-goods‘).index(); // 获取checkbox所在行的顺序
            $(".one-shop").find(".one-goods:eq("+n+")").remove();
            TotalPrice();
         }
     });
  });

  function TotalPrice() {
    var allprice = 0; //总价
    $(".one-shop").each(function() { //循环每个店铺
      var oprice = 0; //店铺总价
      $(this).find(".GoodsCheck").each(function() { //循环店铺里面的商品
        if ($(this).is(":checked")) { //如果该商品被选中
          var num = parseInt($(this).parents(".one-goods").find(".am-num-text").val()); //得到商品的数量
          var price = parseFloat($(this).parents(".one-goods").find(".GoodsPrice").text()); //得到商品的单价
          var total = price * num; //计算单个商品的总价
          oprice += total; //计算该店铺的总价
        }
        $(this).closest(".one-shop").find(".ShopTotal").text(oprice.toFixed(2)); //显示被选中商品的店铺总价
      });
      var oneprice = parseFloat($(this).find(".ShopTotal").text()); //得到每个店铺的总价
      allprice += oneprice; //计算所有店铺的总价
    });
    $("#AllTotal").text(allprice.toFixed(2)); //输出全部总价
  }
  </script>
</body>
</html>

原文地址:https://www.cnblogs.com/lingXie/p/10518137.html

时间: 2024-11-11 07:45:10

jquery-防多店铺购物车结算全选,单选,及删除,价格计算的相关文章

php--jquery操作全选、批量删除、加减行

html代码 加减行 全选  反选 批量删除

jquery实现购物车的全选与反选

//获取所有的子按钮让下面的去全选按钮跟着改变 var inputs=$('.Item') var allinput=$('.qxan') $(".Item").click(function () { var s = $(".Item").length; var a = $(".Item:checked").length; if (s == a) { allinput.prop('checked', true); } else { allinpu

购物车的全选,全不选,局部全选,全选判定

<!doctype html><html><head><meta charset="utf-8"><meta name="format-detection" content="telephone=no"/><meta name="viewport" content="user-scalable=no, width=device-width, initi

Android中购物车的全选、反选、问题和计算价格

此Demo主要解决的是购物车中的全选,反选计算价格和选中的条目个数的问题,当选中几条时,点击反选,会把当先选中的变为不选中,把不选中的变为选中.点击全选会全部选中,再次点击时,变为全部不选中. //-----------一下为main的布局----------------------- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http

jQuery实现Checkbox中项目开发全选全不选的使用

1 <html> 2 <head> 3 <meta charset="utf-8"> 4 <title>Checkbox的练习</title> 5 <style type="text/css"> 6 *{margin:0px;padding:0px;} 7 table{width:100%;text-align:center;} 8 </style> 9 10 <script

Jquery全选单选功能

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm6.aspx.cs" Inherits="wzgyd.WebForm5" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x

Jquery中对checkbox的各种“全选”或者“取消”功能实现(特别注意1.6+的一定不能使用attr来取属性了!用prop!)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </h

关于jquery全选反选 批量删除的一点心得

废话不多说直接上代码: 下面是jsp页面的html代码: <table id="contentTable" class=""> <thead> <tr> <th><input type="checkbox" id="All" value="全选/全不选" />全选/全不选</th> </tr> </thead>

jQuery .attr() .prop() .data()区别及全选等问题

DOM的attribute和property 今天讲一个JS的小话题,就是DOM节点的attribute和property的区别,这个点看起来很小,其实背后别有洞天.如果面试一个前端,听他讲讲对这个问题的理解,基本能分辨是不是菜鸟.下面的内容请各位细心体会. 页面有一个INPUT输入框   这个比较简单,没什么好说的,两个值都是’1′.现在我把输入框的值改成100,然后重新取一遍值: 为什么两个值不同了?这就是attribute和property在作怪. Attibute 这 个INPUT节点有