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));
    
    } 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
淘宝购物车的增减功能可以通过使用jQuery来实现。下面是一种实现该功能的方法: 首先,为每个商品的增加按钮和减少按钮添加相应的class,例如"add-btn"和"minus-btn"。 然后,使用jQuery的事件监听功能,为这两个按钮添加点击事件处理程序。当增加按钮被点击时,可以通过jQuery的选择器找到对应的商品数量元素,然后将其值加一。当减少按钮被点击时,可以将对应的商品数量元素的值减一。 在点击事件处理程序中,可以使用jQuery的text()方法来获取和设置商品数量元素的文本值。通过这种方式,就可以实现购物车的增减功能了。 以下是一个示例代码: ```javascript $(".add-btn").click(function(){ var quantityElement = $(this).siblings(".quantity"); var quantity = parseInt(quantityElement.text()); quantityElement.text(quantity + 1); }); $(".minus-btn").click(function(){ var quantityElement = $(this).siblings(".quantity"); var quantity = parseInt(quantityElement.text()); if(quantity > 0) { quantityElement.text(quantity - 1); } }); ``` 在这个示例代码中,我们假设商品数量元素的class为"quantity"。当增加按钮被点击时,我们获取对应的商品数量元素的值,并将其加一。当减少按钮被点击时,我们判断当前数量是否大于0,如果大于0则将其减一。 希望这个示例能够帮助你实现淘宝购物车的增减功能。<span class="em">1</span> #### 引用[.reference_title] - *1* [前端学习案例合集,各种前端案例实现源码.zip](https://download.csdn.net/download/weixin_47367099/85371887)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值