jQuery内容文本值||购物车案例-修改商品小计模块思路分析

【要求】

点击加号或减号、修改文本框,对应小计发生变换

 

【思路】

1、核心思路:每次点击+号或者-号,根据“文本框的值*当前商品的单价”就是商品的小计

2、注意1:只能增加本商品的小计,就是当前商品的小计模块

3、修改普通元素的内容是text()方法

4、注意:当前商品的价格要把¥符号去掉再相乘,否则会报错。采用截取字符串substr(1)方法

5、parents('选择器')可以返回指定祖先元素

6、最后计算的结果如果想保留两位小数,通过toFixed(2)方法

7、用户也可以直接修改表单里面的值,同样要计算小计。用表单change事件

8、用新的表单内的值乘以单价即可,但是还是当前商品的小计

【代码】

html代码

复制代码
<body>
    <div class="countbox">
        <div class="thead">
            <h4>单价</h4>
            <h4>数量</h4>
            <h4>小计</h4>
        </div>
        <!-- 主体 -->
        <div class="tbody">
            <!-- 1 -->
            <div class="row">
                <!-- 单价 -->
                <div class="price">¥12.60</div>
                <!-- 数量 -->
                <div class="quantity">
                    <div class="num">
                        <a href="javascript:;" class="decrement">-</a>
                        <input type="text" class="itxt" value="1">
                        <a href="javascript:;" class="increment">+</a>
                    </div>
                </div>
                <!-- 小计 -->
                <div class="sum">¥12.60</div>
            </div>
            <!-- 2 -->
            <div class="row">
                <!-- 单价 -->
                <div class="price">¥12.60</div>
                <!-- 数量 -->
                <div class="quantity">
                    <div class="num">
                        <a href="javascript:;" class="decrement">-</a>
                        <input type="text" class="itxt" value="1">
                        <a href="javascript:;" class="increment">+</a>
                    </div>
                </div>
                <!-- 小计 -->
                <div class="sum">¥12.60</div>
            </div>
            <!-- 3 -->
            <div class="row">
                <!-- 单价 -->
                <div class="price">¥12.60</div>
                <!-- 数量 -->
                <div class="quantity">
                    <div class="num">
                        <a href="javascript:;" class="decrement">-</a>
                        <input type="text" class="itxt" value="1">
                        <a href="javascript:;" class="increment">+</a>
                    </div>
                </div>
                <!-- 小计 -->
                <div class="sum">¥12.60</div>
            </div>
        </div>
    </div>
</body>
复制代码

js代码

复制代码
<!-- 引入jquery.mini.js文件 -->
<script src="jquery.mini.js"></script>
<script>
    $(function() {
        //1、 减号
        $(".decrement").click(function() {
            //得到当前被点击减号-的兄弟文本框的值
            var num = $(this).siblings(".itxt").val();
            //获取当前被点击减号-对应的单价
            var price = $(this).parent().parent().siblings(".price").html().substr(1);
            // 相当于 price = $(this).parents(".quantity").siblings(".price").html().substr(1);
            if (num == 1) {
                return false;
            };
            num--;
            $(this).siblings(".itxt").val(num);
            //修改当前被点击加号+对应的小计,toFixed(2)保留两位小数
            sum = (price * num).toFixed(2);
            $(this).parent().parent().siblings(".sum").html("¥" + sum);


        });
        // 2、加号
        $(".increment").click(function() {
            //得到当前被点击加号+的兄弟文本框的值
            var num = $(this).siblings(".itxt").val();
            //获取当前被点击加号+对应的单价
            var price = $(this).parent().parent().siblings(".price").html().substr(1);
            // 相当于 price = $(this).parents(".quantity").siblings(".price").html().substr(1);
            num++;
            $(this).siblings(".itxt").val(num);
            //修改当前被点击加号+对应的小计,toFixed(2)保留两位小数
            sum = (price * num).toFixed(2);
            $(this).parent().parent().siblings(".sum").html("¥" + sum);
            // 相当于 price = $(this).parents(".quantity").siblings(".sum").html("¥" + sum)
        });
        //3、修改文本框change
        $(".quantity .itxt").change(function() {
            //得到当前被修改文本框的值
            var num = $(this).val();
            //得到当前被修改文本框的对应的单价
            var price = $(this).parents(".quantity").siblings(".price").html().substr(1);
            sum = (price * num).toFixed(2);
             //修改当前被修改文本框的对应的小计,toFixed(2)保留两位小数
            $(this).parents(".quantity").siblings(".sum").html("¥" + sum);
            // 相当于 price = $(this).parents(".quantity").siblings(".sum").html("¥" + sum)
        });
    })
</script>
复制代码

 

posted @   蛋蛋仔  阅读(234)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示