【问题标题】:get the previous element value获取前一个元素值
【发布时间】:2021-03-31 13:10:01
【问题描述】:

我有一个购物车刀片页面,上面显示了带有 ajax 添加到购物车操作的产品。单击按钮时,我想使用 name=quantity 获取输入的值。我想用 jquery prev() 函数来做到这一点,因为代码是正确的,但它不能显示任何警报。也许它无法识别类。那么我该怎么做呢?我有

//Update Cart Items
$(document).on("click", ".btnItemUpdate", function() {
  if ($(this).hasClass("qtyMinus")) {
    var quantity = $(this).prev().val();
    console.log(quantity);
    return false;
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="cart_quantity_button">
  <input class="cart_quantity_input" type="text" name="quantity" value="0" autocomplete="off" size="1" disabled>
  <button class="btnItemUpdate qtyMinus" type="button" data-cartid="{{$item['id']}}"> - </button>
  <button class="btnItemUpdate qtyPlus" type="button" data-cartid="{{$item['id']}}"> + </button>
</div>

【问题讨论】:

  • 对我来说工作得很好。
  • 第二个按钮不起作用,因为前一个元素是另一个按钮,不是您想要的输入
  • 将 $(this).prev().val(); 更改为 $(this).closest(".cart_quantity_button").find(".cart_quantity_input").val() 以便它适用于两个按钮。
  • 显示的代码适用于减号按钮。未显示的内容是错误的
  • 您是否已将 jQuery 代码放入 document.ready 处理程序中?控制台有错误吗?

标签: jquery ajax laravel


【解决方案1】:

//Update Cart Items
$(document).on("click", ".btnItemUpdate", function() {
  if ($(this).hasClass("qtyMinus")) {
    var quantity = $(this).prev().val();
    console.log(quantity);
    return false;
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="cart_quantity_button">
  <input class="cart_quantity_input" type="text" name="quantity" value="0" autocomplete="off" size="1" disabled>
  <button class="btnItemUpdate qtyMinus" type="button" data-cartid="{{$item['id']}}"> - </button>
  <button class="btnItemUpdate qtyPlus" type="button" data-cartid="{{$item['id']}}"> + </button>
</div>

【讨论】:

    【解决方案2】:

    试试这个

    $(document).on("click", ".btnItemUpdate", function() {
        var quantity = parseInt($(this).closest('.cart_quantity_button').find('input[name="quantity"]').val());
        console.log(quantity);
    
        //add quantity by 1
        if ($(this).hasClass("qtyMinus")) {
            quantity--
            console.log(quantity);
        }
    
        //substract quantity by 1
        if ($(this).hasClass("qtyPlus")) {
            quantity++
            console.log(quantity);
        }
    });
    

    上面的代码会从.btnItemUpdate中寻找最接近的具有cart_quantity_button类的div,然后会找到一个名称为quantity的输入,不要忘记使用parseInt()将数量解析为整数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 2016-07-23
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多