IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> jQuery购物车案例 -> 正文阅读

[JavaScript知识库]jQuery购物车案例

JQuery购物车案例

全选模块

选中全选按钮,商品将会添加.check-cart-item类

$('.checkall').change(function(){
        //console.log($(this).prop("checked"));
        $('.j-checkbox, .checkall').prop("checked",$(this).prop("checked"));
        if($(this).prop("checked")){
            $('.cart-item').addClass("check-cart-item");
        }
        else{
            $('.cart-item').removeClass("check-cart-item"); 
        }
        getCount();
    })

从商品列表的内部来实现全选功能

如果商品选中的数量==商品总数,则证明全部商品都选中,此时就要将全选按钮选中

$('.j-checkbox').change(function()
        if($('.j-checkbox:checked').length === $('.j-checkbox').length){
            $('.checkall').prop("checked",true);
        }else{
            $('.checkall').prop("checked",false);
        }
        if($(this).prop("checked")){
            $(this).parent().parent(".cart-item").addClass("check-cart-item");
        }else{
            $(this).parent().parent(".cart-item").removeClass("check-cart-item");
        }
        getCount();
    })

2.自增按钮

商品数量模块的增加,点击+,需要变量实现自增功能,然后将变量的值赋给文本框

$('.increment').click(function()
//获取此时文本框中的值,此值为该商品的数量
        var n=$(this).siblings(".itxt").val();
   //当我点击+按钮时,该事件发生,n需要在文本框的基础上增加
        n++;
       //然后将n的值赋给文本框
        $(this).siblings(".itxt").val(n)
     //(1)获取商品的单价
     var p = $(this).parent().parent().siblings(".p-price").html();
//获取的单价带单位,substr()截取字符串,将单位去掉
     p = p.substr(1)
    //单价*数量获该商品的总价格,保留两位小数
    var pSum = (p * n).toFixed(2);
    //将该价格天到放小计的文本框中
     $(this).parent().parent().siblings(".p-sum").html("¥"+pSum);
    //调用函数
     getCount()
     }) 

自减模块

商品数量模块的减少,点击-,需要变量实现自减功能,然后将变量的值赋给文本框

$('.decrement').click(function(){
           var n=$(this).siblings(".itxt").val();
           if(n>1){
               n--;
               $(this).siblings(".itxt").val(n);
               //(1)获取商品的单价
                var p = $(this).parent().parent().siblings(".p-price").html();
                p = p.substr(1)
               //四舍五入
               var pSum = (p * n).toFixed(2)
                $(this).parents(".p-num").siblings(".p-sum").html("¥"+pSum);
                getCount()
           }else{
              alert('是否删除该商品');
              return false;
           } 
    })

直接键盘输入文本框,改变小计的值

$('.itxt').change(function(){
        //获取商品的单价
        var n=$(this).val();
        var p = $(this).parents().siblings(".p-price").html();
        /* 截取字符串的长度,从第一个字符串到最后一个,下标从0开始*/
         p = p.substr(1)
        var pSum = (p * n).toFixed(2);
         $(this).parents(".p-num").siblings(".p-sum").html("¥"+pSum);
         getCount()
    })
    

删除商品

当点击商品后的删除按钮时,删除该商品

$('.p-action a').click(function()
            alert("确定删除该商品吗?");
            $(this).parents('.cart-item').remove();
            getCount();
        })

删除所有商品

当点击删除所有商品的按钮时,删除所有商品

$('.clear-all').click(function(){
            alert("确定删除所有商品吗?");
            $('.cart-item').remove();
            getCount();
        })

删除选中的商品

当点击删除选中商品时

$('.remove-batch').click(function(){
            alert("确定删除选中的所有商品吗?");
           //法一:
      /*$('.j-checkbox').each(function(index,element){
         if($(element).prop('checked')){ 
         $(element).parents(".cart-item").remove();
                }
            }) */
           //法二:
            //将复选框中选中的组成一个伪数组
            $('.j-checkbox:checked').parents(".cart-item").remove();
         getCount() ;
    })

商品数量、商品总价

function getCount()
     //商品总数量
        var count=0;
        $('.itxt').each(function(index,element)
           if($(element).parents('.p-num').siblings('.p-checkbox').children('.j-checkbox').prop('checked')){ 
            count+=parseInt($(element).val());
           }
        })
        $('.amount-sum em').text(count);
 
    //商品总价
        var sum=0;
        $('.p-sum').each(function(index,element){
           if($(element).siblings('.p-checkbox').children('.j-checkbox').prop('checked')){
            sum += parseFloat(($(element).text().substr(1)));
            //parseFloat()强转小数会随机,所有必须要有toFixed()方法
           }
        })
        $('.price-sum em').text("¥"+sum.toFixed(2));
    
    } 
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 07:59:01  更:2022-05-08 08:01:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:20:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码