DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery入門技巧 >> jquery購物車結算功能實現方法
jquery購物車結算功能實現方法
編輯:JQuery入門技巧     

先看看購物車結算效果:

具體代碼:

<!DOCTYPE html> 
<html lang="en"> 
 
<head> 
 <meta charset="utf-8"> 
 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 <title>購物車結算</title> 
 <meta name="description" content=""> 
 <meta name="keywords" content=""> 
 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /> 
 <meta name="format-detection" content="telephone=no" /> 
 <meta name="renderer" content="webkit"> 
 <!--<![endif]--> 
 <meta name="apple-mobile-web-app-capable" content="yes"> 
 <meta name="apple-mobile-web-app-status-bar-style" content="black"> 
 <style> 
 .shop-total, 
 .all-total { 
 height: 50px; 
 line-height: 50px; 
 font-weight: bold; 
 color: #f00; 
 float: left; 
 } 
 
 .one-shop, 
 .all-total, 
 .shop-total { 
 width: 400px; 
 } 
 
 p { 
 margin: 0; 
 } 
 
 .goods-check { 
 width: 25px; 
 height: 25px; 
 margin-top: 5px; 
 } 
 
 .goods-msg, 
 p, 
 label { 
 float: left; 
 } 
 </style> 
</head> 
 
<body> 
 <!-- 一個店鋪 --> 
 <div class="one-shop"> 
 <!-- 一個商品 --> 
 <div class="one-goods"> 
  <div class="goods-msg"> 
  <label for=""> 
   <input type="checkbox" class="goods-check GoodsCheck"> 
  </label> 
  <button type="button" class="minus">-</button> 
  <input type="text" class="am-num-text" value="1" /> 
  <button type="button" class="plus">+</button> 
  </div> 
  <p>商品單價:¥<span class="shop-total-amount GoodsPrice">20.00</span></p> 
 </div> 
 <!-- 一個商品 --> 
 <div class="one-goods"> 
  <div class="goods-msg"> 
  <label for=""> 
   <input type="checkbox" class="goods-check GoodsCheck"> 
  </label> 
  <button type="button" class="minus">-</button> 
  <input type="text" class="am-num-text" value="1" /> 
  <button type="button" class="plus">+</button> 
  </div> 
  <p>商品單價:¥<span class="shop-total-amount GoodsPrice">9.90</span></p> 
 </div> 
 <!-- 一個商品 --> 
 <div class="one-goods"> 
  <div class="goods-msg "> 
  <label for=""> 
   <input type="checkbox" class="goods-check GoodsCheck"> 
  </label> 
  <button type="button" class="minus">-</button> 
  <input type="text" class="am-num-text" value="1" /> 
  <button type="button" class="plus">+</button> 
  </div> 
  <p>商品單價:¥<span class="shop-total-amount GoodsPrice">10.00</span></p> 
 </div> 
 <!-- 店鋪合計 --> 
 <div class="shop-total"> 
  <label for=""> 
  <input type="checkbox" class="goods-check ShopCheck">店鋪全選 </label> 
  <p>本店合計:¥<span class="shop-total-amount ShopTotal">0</span></p> 
 </div> 
 </div> 
 <!-- 一個店鋪 --> 
 <div class="one-shop"> 
 <!-- 一個商品 --> 
 <div class="one-goods"> 
  <div class="goods-msg"> 
  <label for=""> 
   <input type="checkbox" class="goods-check GoodsCheck"> 
  </label> 
  <button type="button" class="minus">-</button> 
  <input type="text" class="am-num-text" value="1" /> 
  <button type="button" class="plus">+</button> 
  </div> 
  <p>商品單價:¥<span class="shop-total-amount GoodsPrice">30.00</span></p> 
 </div> 
 <!-- 一個商品 --> 
 <div class="one-goods"> 
  <div class="goods-msg"> 
  <label for=""> 
   <input type="checkbox" class="goods-check GoodsCheck"> 
  </label> 
  <button type="button" class="minus">-</button> 
  <input type="text" class="am-num-text" value="1" /> 
  <button type="button" class="plus">+</button> 
  </div> 
  <p>商品單價:¥<span class="shop-total-amount GoodsPrice">20.00</span></p> 
 </div> 
 <!-- 店鋪合計 --> 
 <div class="shop-total"> 
  <label for=""> 
  <input type="checkbox" class="goods-check ShopCheck">店鋪全選 </label> 
  <p>本店合計:¥<span class="shop-total-amount ShopTotal">0</span></p> 
 </div> 
 </div> 
 <!-- 總計 --> 
 <div class="all-total"> 
 <label for=""> 
  <input type="checkbox" class="goods-check" id="AllCheck">全選 </label> 
 <p>總價合計:¥<span class="shop-total-amount" id="AllTotal">0</span></p> 
 </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(); //執行店鋪全選的操作 
 }); 
 
 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> 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved