解决使用forEach时,修改里面的数据只能修改第一条数据

博主在写购物车项目时,在对购物车的物品数量加减时,需要同时对数据库进行修改,但是一直都是只能修改第一条物品的数量。后来终于解决,话不多说,先上代码

jsp的forEach部分:

<c:forEach items="${list }" var="cart" varStatus="status">
            <tr class="cartProductItemTR" oiid="${cart.goodsId}">
                <td>
                    <img src="image/cartNotSelected.png" class="cartProductItemIfSelected" oiid="${cart.goodsId}" selectit="false">
                    <a href="#nowhere" style="display:none"><img src="image/cartSelected.png"></a>
                    <img src="image/菠萝mate40pro.png" class="cartProductImg">

                </td>
                <td>
                    <div class="cartProductLinkOutDiv">
                        <a class="cartProductLink" href="#nowhere">${cart.goodsName}</a>
                        <div>
                            <img src="https://gw.alicdn.com/tfs/TB1XY8mheH2gK0jSZFEXXcqMpXa-63-16.png">
                        </div>
                    </div>
                </td>
                <td>
                    <span class="cartProductItemPromotionPrice">¥${cart.goodsPrice}0</span>
                </td>
                <td>
                    <div class="cartProductChangeNumberDiv">
                        <span pid="${cart.goodsId}" class="hidden orderItemStock ">${cart.goodsId}</span>
                        <span pid="${cart.goodsId}" class="hidden orderItemPromotePrice ">¥${cart.goodsPrice}0</span>
                        <a href="#nowhere" class="numberMinus" pid="${cart.goodsId}" id="${cart.goodsId}" >-</a>
                        <input value="${cart.goodsNumber}" autocomplete="off" class="orderItemNumberSetting" oiid="${cart.goodsId}" pid="${cart.goodsId}" id="${cart.goodsId}">
                        <a href="#nowhere" class="numberPlus" pid="${cart.goodsId}" stock="${cart.goodsId}" id="${cart.goodsId}">+</a>
                    </div>
                </td>
                <td>
                            <span pid="${cart.goodsId}" oiid="${cart.goodsId}" id="cartProductItemSmallSumPrice" class="cartProductItemSmallSumPrice">
                            ¥${cart.goodsPrice * cart.goodsNumber}
                            </span>
                </td>
                <td>
                    <a href="#nowhere" oiid="${cart.goodsId}" class="deleteOrderItem">删除</a>
                </td>
            </tr>
            </c:forEach>

未修改前的js部分:

<script>
    $(function (){
        //点击+增加数量
        $(".numberPlus").click(function(){
            var pid=$(this).attr("pid");
            var stock= $("span.orderItemStock[pid="+pid+"]").text();
            var price= $("span.orderItemPromotePrice[pid="+pid+"]").text();

            var num= $(".orderItemNumberSetting[pid="+pid+"]").val();
            ++num;
            $(".orderItemNumberSetting[pid="+pid+"]").val(num);
            price=convertNumber(price)*num;
            price=parseFloat(price).toFixed(2);
            $(".cartProductItemSmallSumPrice[pid="+pid+"]").html("¥"+price);
            $.ajax({
                type:"post",
                url:"updateCartNumber?goodsNumber="+num+"&&goodsId="+$("[name='goodsId']").val()+"&&userId="+$("[name='userId']").val(),
                dataType:"text",
                success:function (data) {
                    if(data==1){

                    }
                }
            })
            getPrice();
        });
        //键盘输入数量
        $(".orderItemNumberSetting").keyup(function(){
            var pid=$(this).attr("pid");
            var stock= $("span.orderItemStock[pid="+pid+"]").text();
            var price= $("span.orderItemPromotePrice[pid="+pid+"]").text();
            var num= $(".orderItemNumberSetting[pid="+pid+"]").val();
            num = parseInt(num);
            if(isNaN(num))
            {num= 1;
            }
            if(num<=0)
                num = 1;
            if(num>stock)
                num = stock;
            $(".orderItemNumberSetting[pid="+pid+"]").val(num);
            //改变金额
            price=convertNumber(price)*num;
            price=parseFloat(price).toFixed(2);
            $(".cartProductItemSmallSumPrice[pid="+pid+"]").html("¥"+price);
            $.ajax({
                type:"post",
                url:"updateCartNumber?goodsNumber="+num+"&&goodsId="+$("[name='goodsId']").val()+"&&userId="+$("[name='userId']").val(),
                dataType:"text",
                success:function (data) {
                    if(data==1){

                    }
                }
            })
            getPrice();
        });

        //点击-减少数量
        $(".numberMinus").click(function(){
            var pid=$(this).attr("pid");
            var stock= $("span.orderItemStock[pid="+pid+"]").text();
            var price= $("span.orderItemPromotePrice[pid="+pid+"]").text();
            var num= $(".orderItemNumberSetting[pid="+pid+"]").val();
            --num;
            if(num==0)num=1;
            $(".orderItemNumberSetting[pid="+pid+"]").val(num);
            price=convertNumber(price)*num;
            price=parseFloat(price).toFixed(2);
            $(".cartProductItemSmallSumPrice[pid="+pid+"]").html("¥"+price);
            $.ajax({
                type:"post",
                url:"updateCartNumber?goodsNumber="+num+"&&goodsId="+$("[name='goodsId']").val()+"&&userId="+$("[name='userId']").val(),
                dataType:"text",
                success:function (data) {
                    if(data==1){

                    }
                }
            })
            getPrice();
        });
    })
</script>

修改后:

<script>
    $(function (){
        //点击+增加数量
        $(".numberPlus").click(function(){
            var pid=$(this).attr("pid");
            var stock= $("span.orderItemStock[pid="+pid+"]").text();
            var price= $("span.orderItemPromotePrice[pid="+pid+"]").text();

            var num= $(".orderItemNumberSetting[pid="+pid+"]").val();
            ++num;
            $(".orderItemNumberSetting[pid="+pid+"]").val(num);
            price=convertNumber(price)*num;
            price=parseFloat(price).toFixed(2);
            $(".cartProductItemSmallSumPrice[pid="+pid+"]").html("¥"+price);
            var goodsId =$(this).attr("id");
            $.ajax({
                type:"post",
                url:"updateCartNumber?goodsNumber="+num+"&&goodsId="+goodsId+"&&userId="+$("[name='userId']").val(),
                dataType:"text",
                success:function (data) {
                    if(data==1){

                    }
                }
            })
            getPrice();
        });
        //键盘输入数量
        $(".orderItemNumberSetting").keyup(function(){
            var pid=$(this).attr("pid");
            var stock= $("span.orderItemStock[pid="+pid+"]").text();
            var price= $("span.orderItemPromotePrice[pid="+pid+"]").text();
            var num= $(".orderItemNumberSetting[pid="+pid+"]").val();
            num = parseInt(num);
            if(isNaN(num))
            {num= 1;
            }
            if(num<=0)
                num = 1;
            if(num>stock)
                num = stock;
            $(".orderItemNumberSetting[pid="+pid+"]").val(num);
            //改变金额
            price=convertNumber(price)*num;
            price=parseFloat(price).toFixed(2);
            $(".cartProductItemSmallSumPrice[pid="+pid+"]").html("¥"+price);
            var goodsId =$(this).attr("id");
            $.ajax({
                type:"post",
                url:"updateCartNumber?goodsNumber="+num+"&&goodsId="+goodsId+"&&userId="+$("[name='userId']").val(),
                dataType:"text",
                success:function (data) {
                    if(data==1){

                    }
                }
            })
            getPrice();
        });

        //点击-减少数量
        $(".numberMinus").click(function(){
            var pid=$(this).attr("pid");
            var stock= $("span.orderItemStock[pid="+pid+"]").text();
            var price= $("span.orderItemPromotePrice[pid="+pid+"]").text();
            var num= $(".orderItemNumberSetting[pid="+pid+"]").val();
            --num;
            if(num==0)num=1;
            $(".orderItemNumberSetting[pid="+pid+"]").val(num);
            price=convertNumber(price)*num;
            price=parseFloat(price).toFixed(2);
            $(".cartProductItemSmallSumPrice[pid="+pid+"]").html("¥"+price);
            var goodsId =$(this).attr("id");
            $.ajax({
                type:"post",
                url:"updateCartNumber?goodsNumber="+num+"&&goodsId="+goodsId+"&&userId="+$("[name='userId']").val(),
                dataType:"text",
                success:function (data) {
                    if(data==1){

                    }
                }
            })
            getPrice();
        });
    })
</script>

其实就是加了一句话的原因,就在$.ajax上方加上var goodsId =$(this).attr("id");当被点击时候,获取对应的id,而我的id就是我需要的值。如果有什么疑问可以私信我哈

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值