2021-05-14

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/jquery-1.8.3.min.js"></script>
    <style>
        input[type=text] {
            width: 30px;
        }
    </style>

    <script>
       
       $(function () {

            // 文本框改变事件
            $("input[type='text']").change(function () {
                // 获得数量
                var n = $(this).val();
                // 获得价格
                var price = $(this).siblings(".price").text().substring(1);
                // 更新当前行数据
                var total = (n * price).toFixed(2);
                $(this).siblings(".count").text("¥" + total);


                // 更新总结果
                getResult();

            })

            // 给增加按钮添加点击事件
            $(".increase").click(increaseFunc);


            function updateLine(t, n) {
                // 获取单价
                var price = t.siblings(".price").text().substring(1);
                // 求单行总价
                var sumPrice = n * price;
                // 更新总价
                t.siblings(".count").text("¥" + sumPrice.toFixed(2));
            }

            function getResult() {
                // 获取所有符合条件的行

            }

            function increaseFunc() {
                // 获取它对应的文本框的值
                var n = $(this).siblings("input").val();
                // 让文本值自增一
                n++;
                // 变更后的值回填到文本框中
                $(this).siblings("input").val(n);

                // 更新数据
                updateLine($(this), n);

                // 更新总结果
                getResult();

            }

            // 给减少按钮添加点击事件
            $(".decrease").click(decreaseFunc);

            function decreaseFunc() {
                // 获取它对应的文本框的值
                var n = $(this).siblings("input").val();
                // 让文本值自增一
                n--;
                // 结果验证
                if (n < 1) {
                    alert("不能够再减了")
                    n = 1;
                }
                // 变更后的值回填到文本框中
                $(this).siblings("input").val(n);

                // 更新数据
                updateLine($(this), n);

                // 更新总结果
                getResult();

            }

            function getResult() {
                // 获取所有的商品行
                var li_list = $(".car_list li");

                // 拿所有商品行中的单行总价格
                var total_price = 0;
                li_list.each(function (idx, element) {
                    // 得到单行总价
                    var line_price = $(element).find(".count").text().substr(1);
                    line_price = parseFloat(line_price);
                    // 累加
                    total_price += line_price;
                })
                // 求最最终价格并显示在最底部
                $(".total").text("¥" + total_price.toFixed(2));
            }
        })     
    </script>
</head>
<body>

<ul class="car_list">
    <li><span class="title">商品1</span><span class="price"></span>
        <span class="price">10</span>
        <button class="decrease">-</button>
        <input type="text" value="1">
        <button class="increase">+</button>
        <span class="count">10</span>
    </li>

    <li><span class="title">商品2</span><span class="price"></span>
        <span class="price">20</span>
        <button class="decrease">-</button>
        <input type="text" value="1">
        <button class="increase">+</button>
        <span class="count">20</span>

    </li>
    <li><span class="title">商品3</span><span class="price"></span>
        <span class="price">30</span>
        <button class="decrease">-</button>
        <input type="text" value="1">
        <button class="increase">+</button>
        <span class="count">30</span>
    </li>
</ul>
<p>小计:<span class="total" style="color: red">60</span></p>

</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值