JQuery 购物车案例

本文介绍用JQuery实现购物车案例相关功能

界面如下

主要功能为:

1.单选全选按钮 当单选按钮全选中时全选按钮也被选中,选中商品高亮效果

2.商品数量++ -- 功能,商品数量输入框功能 删除商品功能。

3.单个商品小计,总商品数量计算,总价计算。

4.清空购物车及删除选中商品。

一.全选功能

 //1  全选功能  
    $('.checkall').change(function () {
        var check = $(this).prop('checked')
        if (check) {
            //   如果全选被选中 那么所有的单选按钮都被选中  ---判断条件 checked 
            $('.j-checkbox').prop('checked', true)
            $('.checkall').prop('checked', true)
            //   如果全选没被选中  那么所有的单选都需要取消选中
        } else {
            $('.j-checkbox').prop('checked', false)
            $('.checkall').prop('checked', false)
        }
        total();
    })

二.单选功能,选中商品高亮

//2  单选功能  
    $('.j-checkbox').change(function () {
        // 获取单选按钮个数
        var j_checkbox = $('.j-checkbox').length
        // 获取被选中的单选按钮个数 
        var j_checkboxed = $('.j-checkbox:checked').length
        //  单选按钮的个数 如果跟 单选按钮选中的个数相等     那么表示所有的单选按钮都被选中    全选按钮选中 
        if (j_checkbox === j_checkboxed) {
            $('.checkall').prop('checked', true)
            //  只要有一个单选按钮没被选中  那么全选按钮不被选中 
        } else {
            $('.checkall').prop('checked', false)
        }
        // 选中商品高亮
        if ($(this).is(':checked')) {
            $(this).parents('.cart-item').addClass('check-cart-item')
        } else {
            $(this).parents('.cart-item').removeClass('check-cart-item')
        }
        total();
    })

3.数量++功能

//3  数量++  功能
    // 绑定事件找到input让input的val值++
    // 然后再赋给input
    $('.increment').click(function () {
        var num = $(this).siblings('.itxt').val() * 1;
        num++;
        $(this).siblings('.itxt').val(num)
        // 单价小计
        var price = $(this).parents('.cart-item').find('.p-price').text().substr(1) * 1
        // 保留两位小数
        var singlePrice = (price * num).toFixed(2)
        $(this).parents('.cart-item').find('.p-sum').text('¥' + singlePrice)
        total();
    })

4.数量--功能

// 4  数量--  功能
    $('.decrement').click(function () {
        var num = $(this).siblings('.itxt').val() * 1;
        num == 1 ? num = 1 : num--;
        $(this).siblings('.itxt').val(num)
        // 单价小计
        var price = $(this).parents('.cart-item').find('.p-price').text().substr(1) * 1
        // 保留两位小数
        var singlePrice = (price * num).toFixed(2)
        $(this).parents('.cart-item').find('.p-sum').text('¥' + singlePrice)
        total();
    })

5.删除功能

 // 5  删除功能
    $('.p-action a').click(function () {
        // 弹出确认框 如果返回值为真就删除
        var flag = window.confirm('真的要删除吗?')
        if (flag) {
            $(this).parents('.cart-item').slideUp(500, function () {
                this.remove()
                total();
            })
        }
    })

6.商品数量输入框数据改变功能

 // 6  输入框数据改变 功能 
    $('.itxt').change(function () {
        var num = $(this).val() * 1
        var price = $(this).parents('.cart-item').find('.p-price').text().substr(1) * 1
        if (isNaN(num)) {
            alert('请输入数字!')
            $(this).val(1)
        }
        if (num <= 0) {
            alert('数量最小为1!')
            $(this).val(1)
        }
        // 再次获取 否则会保留之前计算结果
        num = $(this).val() * 1
        // 保留两位小数
        var singlePrice = (price * num).toFixed(2)
        $(this).parents('.cart-item').find('.p-sum').text('¥' + singlePrice)
        total();
    })

7.清空购物车功能

 // 7 清空购物车功能
    $('.operation .clear-all').click(function () {
        $('.cart-warp').hide(500, function () {
            $('.cart-warp').empty()
        })
    })

8.删除选中商品功能

 // 8 删除选中商品
    $('.operation .remove-batch').click(function () {
        var j_checkbox = $('.j-checkbox').length
        var j_checkboxed = $('.j-checkbox:checked').length
        if (j_checkbox != j_checkboxed) {
            $('.j-checkbox').each(function (index, ele) {
                if ($(this).is(':checked')) {
                    $(this).parents('.cart-item').slideUp(200, function () {
                        $(this).parents('.cart-item').remove()
                    })
                }
            })
            total();
        } else {
            $('.cart-warp').hide(500, function () {
                $('.cart-warp').empty()
            })
        }
    })

封装一个函数计算商品数量和总价

 // 封装一个函数计算商品总价和商品数量
    function total() {
        var totalPrice = 0;
        var totalSum = 0;
        $('.cart-item').each(function (index, ele) {
            if ($('.cart-item .j-checkbox:checked')) {
                var price = $(this).find('.p-sum').text().substr(1) * 1
                totalPrice += price
                var sum = $(this).find('.itxt').val() * 1
                totalSum += sum
            }
        })
        $('.price-sum em').text(totalPrice.toFixed(2))
        $('.amount-sum em').text(totalSum)
    }
    // 直接调用 进来就计算

    total();

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值