基于JQuery的购物车添加删除以及结算功能示例

前段时间了解到购物车结算算是一个难点部分,在网上也找了一些,但是网上除了插件之外,就是一些半成品,比如一部分只有添加删除效果,另一部分只有结算功能,很少见到整合在一起的购物车效果,因此自己写了一个,方便大家查看
(添加效果没有飞入,实在懒得写动画效果了,凑合看吧)

HTML部分

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <title></title>
   <link rel="stylesheet" href="css/index.css" rel="external nofollow" >
   <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" type="text/javascript" charset="utf-8"></script>
   <script src="js/index.js" type="text/javascript" charset="utf-8" async defer></script>
</head>
<body>
   <div id="banner"></div>
   <div id="container">
    <ul>
      <li num="1"><img src="images/1.jpg"/><span class="things_name">2014年春季爆品A<p>$<i>10</i><span class="buy">点击购买</p></li>
      <li num="2"><img src="images/2.jpg"/><span class="things_name">2014年春季爆品B<p>$<i>20</i><span class="buy">点击购买</p></li>
      <li num="3"><img src="images/3.jpg"/><span class="things_name">2014年春季爆品C<p>$<i>30</i><span class="buy">点击购买</p></li>
      <li num="4"><img src="images/4.jpg"/><span class="things_name">2014年春季爆品D<p>$<i>40</i><span class="buy">点击购买</p></li>
    </ul>
   </div> 

   <div id="carlist">
    <div class="car">
      <div>
        <span class="carLogo"><span><img src="images/car.png"/>
        <span class="txt">购<br />物<br />车
      </div> 

    </div>
    <div class="list">
      <!--此处添加动态元素-->
      <div class="total">
        <span>总价:<span>0元
      </div>
    </div>
   </div>
   <script type="text/javascript">
    function view(){
          return{
            w:document.documentElement.clientWidth,
            h:document.documentElement.clientHeight
          };
        }
        document.body.style.height=view().h+"px";
   </script>
</body>
</html>

JS部分

$(function(){
 var mark=0;
 $(".car").on("click",function(){
   if(mark==0){
     $("#carlist").animate({marginRight:"0px"},500)
     mark=1;
   }else{
     $("#carlist").animate({marginRight:"-260px"},500)
     mark=0
   }
 }) 

 //点击购买按钮添加至购物车
 var buyButton=$(".buy");
 buyButton.on("click",BuyClick) 

 function BuyClick(){
   var thingsName=$(this).parents("li").find(".things_name").text();
   var thingsPrice=$(this).parent().find("i").text();
   var thingsImage=$(this).parents("li").find("img").attr("src");
   var kNum=$(this).parents("li").attr("num")
   var Geshu=1;
   $(this).off("click").text("已经添加至购物车"); 

   $(".list").append('<div class="select things" num='+kNum+'><img src='+thingsImage+'/><p class="name">'+thingsName+'</p><p class="price">$<i>'+thingsPrice+'</i></p><ul class="caozuo"><li class="zengjian"><span class="minus">-<span>1<span class="add">+</li><li class="del">删除</li></ul></div>');
   countTotalPrice();
   totalGeshu(); 

   //点击加号添加商品个数 

   $(".add").off("click").on("click",function(){
     Geshu=parseInt($(this).parent().find("span:nth-of-type(2)").text())
     Geshu++
     $(this).parent().find("span:nth-of-type(2)").text(Geshu)
     countTotalPrice();
     totalGeshu();
   }) 

   //动态生成的元素点击减号减少商品个数
   $(".minus").off("click").on("click",function(){
     Geshu=parseInt($(this).parent().find("span:nth-of-type(2)").text());
     if(Geshu>1){
       Geshu--;
       $(this).parent().find("span:nth-of-type(2)").text(Geshu)
     }else{
       Geshu==1;
     }
     countTotalPrice();
     totalGeshu();
   }) 

   //删除购物车内的商品
   var del=$(".del");
   del.each(function(){
     $(this).off("click").on("click",function(){
       var delName=$(this).parents(".things").find(".name").text();
       $(this).parents(".things").remove();
       countTotalPrice();
       totalGeshu();
       var oldBtn=$("#container ul li").find("span:contains("+delName+")").parents("li").find(".buy")
       oldBtn.on("click",BuyClick).text("点击购买")
     })
   }) 

   //计算总价函数
   function countTotalPrice(){
     var totalPrice=0,listThings=$(".list").find(".things");
     for (var i=0;i<listThings.length;i++) {
       var this_geshu=parseInt(listThings.eq(i).find(".zengjian span:nth-of-type(2)").text());
       var this_price=parseInt(listThings.eq(i).find(".price i").text());
       totalPrice+=this_geshu*this_price;
     }
     $(".total span").eq(1).text(totalPrice);
     totalGeshu();
   } 

   //购物车上的商品总数
   function totalGeshu(){
     var listThings=$(".list").find(".things");
     if (listThings.length>0) {
       var totalGeshu=0;
       listThings.each(function(){
         var this_geshu=parseInt($(this).find(".zengjian span:nth-of-type(2)").text());
         totalGeshu+=this_geshu;
       })
       $(".carLogo span").html(totalGeshu)
     } else{
       $(".carLogo span").css("display","none")
     }
   }
 }
}) 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • jQuery实现购物车数字加减效果

    我们在网上购物提交订单时,在网页上一般会有一个选择数量的控件,要求买家选择购买商品的件数,开发者会把该控件做成可以通过点击实现加减等微调操作,当然也可以直接输入数字件数.本文将介绍常见的几种使用spinner数字微调器来实现数字加减的功能的方法. 左右加减数字 像京东提交订单时目前使用的是左右加减数字的效果,这个效果直接明了,操作简单.我们使用jquery.spinner.js插件实现左右加减数字,调用方法非常简单,请看演示示例1. 复制代码 代码如下: <input type="text

  • jQuery使用cookie与json简单实现购物车功能

    本文实例讲述了jQuery使用cookie与json简单实现购物车的方法.分享给大家供大家参考,具体如下: 1.生成一个cookie 用来存储商品的id  String类型 2.添加商品id的时候 把cookie转化成数组,并检查是否已经包含了.没有包含用js push重新生成新的数组. 3.把数组转化成String 用cookie存储. 以下是jquery对cookie和JSON的操作方法 $.cookie("cart","ids",{expires:-7,pat

  • jQuery基于cookie实现的购物车实例分析

    本文实例讲述了jQuery基于cookie实现的购物车.分享给大家供大家参考,具体如下: 这里分析了jquery购物车原理,包括添加商品及数量到购物车 cookie 中,判断购物车中有无商品,如果有,则把json字符串转换成对象,返回当前商品在 cookie 中的总数. 将商品放入购物车: $(function(){ $(".tc").hide(); var PId = $("#hfPId").val(); // 商品的ID var PName = $("

  • jQuery实现购物车计算价格功能的方法

    本文实例讲述了jQuery实现购物车计算价格功能的方法.分享给大家供大家参考.具体如下: 目的 实现在html界面修改购物车的件数,购物车商品价格的小计和总计要修改. 实现思路 1.当点击进入界面,刷新的时候触发body内的onload=""方法,跳转到JS代码.这样做的原因是在数据库内我们只会存储某客户的准备购买的商品件数,而不会存储每类商品价格的小计和购物车内所有物品的商品总价格,初始化的目的就是为将这些数字计算出来后显示在前台界面上. 2.当更改数量输入框中每个商品的数量时,整个

  • 纯jquery实现模仿淘宝购物车结算

    这篇文章里,将会提到购物车里的所有功能.包括全选.单选金额改变.在增加数量时金额也会相应改变. 效果图展示: 说下大致的思路吧: 1.首先是计算一行的价格.这个功能在上篇博客里有提到,这里就不列举出来了. 2.遍历选中的几行,将每行的数值相加. 3.将值赋给总金额显示出来.当取消勾选或加减数量时,金额会相应改变. 下面是具体的js部分: <script type="text/javascript"> $(function(){ //计算总金额 function totalM

  • 基于jquery fly插件实现加入购物车抛物线动画效果

    先给大家展示下效果图: 在购物网站中,加入购物车的功能是必须的功能,有的网站在用户点击加入购物车按钮时,就会出现该商品从点击出以抛物线的动画相似加入购物车,这个功能看起来非常炫,对用户体验也有一定的提高.下面介绍基于jquery fly插件实现加入购物车抛物线动画效果. 使用jquery.fly插件很方便时实现抛物线动画加入购物车的功能 一.插件下载 插件官方:https://github.com/amibug/fly 二.载入jQuery库文件和jquery.fly.min.js插件 <scr

  • 基于JQuery实现的类似购物商城的购物车

    商品信息使用JSON数据来模拟 同一个产品点击多次,不会重复添加,而是在已有的基础上数量+1, 商品数量也可以手动输入,当输入0时,该商品将自动从购物车删除(点击减号到小于1时,也会提示是否从购物车删除商品信息) 每个产品的价格和总价都会根据添加和删除的操作来动态计算 附下载链接:/201112/yuanma/jquery_gouwuche.rar 基本的功能都已经实现, 建议使用IE浏览器运行,其他浏览器没有测试 HTML代码: 复制代码 代码如下: <!DOCTYPE html PUBLIC

  • jQuery实现购物车多物品数量的加减+总价计算

    复制代码 代码如下: <!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>jQuery实现购物

  • jQuery实现类似淘宝购物车全选状态示例

    复制代码 代码如下: <!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> <meta http-equiv=&qu

  • jQuery基于json与cookie实现购物车的方法

    本文实例讲述了jQuery基于json与cookie实现购物车的方法.分享给大家供大家参考,具体如下: json 格式: [{'ProductID':ABC','Num':'1'},{'ProductID':DEF,'Num':'2'}] 这里使用到了 $.cookie这个插件.这个插件的代码在文章的最后 /* 添加商品及数量到购物车cookie中,返回当前商品在cookie中的总数 */ function AddToShoppingCar(id, num) { var _num = 1; if

随机推荐