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

发布时间 - 2026-01-11 00:03:21    点击率:

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

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") 
     } 
   } 
 } 
}) 

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


# jquery购物车结算页面  # jquery实现购物车结算  # jquery购物车添加删除  # jQuery实现移动端手机商城购物车功能  # jQuery实现购物车多物品数量的加减+总价计算  # jQuery实现加入购物车飞入动画效果  # JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)  # 纯jquery实现模仿淘宝购物车结算  # 基于JQuery实现的类似购物商城的购物车  # jQuery+HTML5加入购物车代码分享  # jQuery实现类似淘宝购物车全选状态示例  # jquery购物车结算功能实现方法  # jQuery仿天猫实现超炫的加入购物车  # jquery制作的移动端购物车效果完整示例  # 购物车  # 春季  # 找了  # 写了  # 看吧  # 前段时间  # 大家多多  # 购物车内  # 在网上  # 网上  # min  # jquery  # js  # text  # type  # javascript  # libs  # nofollow  # external  # index 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 手机网站制作与建设方案,手机网站如何建设?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Laravel如何实现用户注册和登录?(Auth脚手架指南)  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  JavaScript常见的五种数组去重的方式  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  海南网站制作公司有哪些,海口网是哪家的?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Thinkphp 中 distinct 的用法解析  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  JavaScript如何操作视频_媒体API怎么控制播放  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  如何在橙子建站中快速调整背景颜色?  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  如何快速上传自定义模板至建站之星?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  如何快速生成凡客建站的专业级图册?  香港网站服务器数量如何影响SEO优化效果?  微信小程序 闭包写法详细介绍  零服务器AI建站解决方案:快速部署与云端平台低成本实践  北京专业网站制作设计师招聘,北京白云观官方网站?  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  php打包exe后无法访问网络共享_共享权限设置方法【教程】  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  Laravel怎么清理缓存_Laravel optimize clear命令详解  大同网页,大同瑞慈医院官网?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  Python面向对象测试方法_mock解析【教程】  Android仿QQ列表左滑删除操作  iOS UIView常见属性方法小结  手机软键盘弹出时影响布局的解决方法  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Python3.6正式版新特性预览  文字头像制作网站推荐软件,醒图能自动配文字吗?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  制作公司内部网站有哪些,内网如何建网站?  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  如何用wdcp快速搭建高效网站?  Laravel怎么使用Intervention Image库处理图片上传和缩放