javascript - 使用 jQuery 在 WooCommerce 上增加/减少数量

标签 javascript html jquery woocommerce

我正在使用以下内容向我的 WooCommerce 商店添加 + 和 - 按钮。它正在工作,只是一旦单击它就会更改购物车中的每个商品数量,而不仅仅是特定产品。我似乎无法解决这个问题。

这是 HTML:

<div class="quantity">
<label for="quantity5432">Quantity</label>
<input type="number" id="quantity5432" class="qty" step="1" min="0" name="cart[73d][qty]" value="0">
</div>

<div class="quantity-nav">
<div class="quantity-button add-action add-up">+</div>
<div class="quantity-button add-action add-down">-</div>
</div>

这是 jQuery

$(document).ready(function() {
  const minus = $('.add-down');
  const plus = $('.add-up');
  const input = $('.qty');
  minus.click(function(e) {
    e.preventDefault();
    var value = input.val();
    if (value > 1) {
      value--;
    }
    input.val(value);
  });

  plus.click(function(e) {
    e.preventDefault();
    var value = input.val();
    value++;
    input.val(value);
  })
});```

最佳答案

您可以通过在减号中选择此输入来调整脚本以使用类 .qty 来定位特定输入,并根据 的位置添加 click() 事件点击。

$(document).ready(function() {
  const minus = $('.add-down');
  const plus = $('.add-up');
  minus.click(function(e) {
    e.preventDefault();
    const input = $(this).closest(".quantity-nav").prev(".quantity").find(".qty");
    var value = input.val();
    if (value > 1) {
      value--;
    }
    input.val(value);
  });

  plus.click(function(e) {
    e.preventDefault();
    const input = $(this).closest(".quantity-nav").prev(".quantity").find(".qty");
    var value = input.val();
    value++;
    input.val(value);
  })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="quantity">
  <label for="quantity5432">Quantity</label>
  <input type="number" id="quantity5432" class="qty" step="1" min="0" name="cart[73d][qty]" value="0">
</div>
<div class="quantity-nav">
  <div class="quantity-button add-action add-up">+</div>
  <div class="quantity-button add-action add-down">-</div>
</div>
<div class="quantity">
  <label for="quantity5433">Quantity</label>
  <input type="number" id="quantity5433" class="qty" step="1" min="0" name="cart[73e][qty]" value="0">
</div>

<div class="quantity-nav">
  <div class="quantity-button add-action add-up">+</div>
  <div class="quantity-button add-action add-down">-</div>
</div>

关于javascript - 使用 jQuery 在 WooCommerce 上增加/减少数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61597661/

相关文章:

javascript - 为什么我的按钮需要点击两次才能让事件处理程序第一次工作,但之后只需要点击一次?

javascript - 将 CSS.supports() 与媒体查询一起使用?

javascript - 将 img src 替换为 js jquery

jquery 验证日期

javascript - 需要更新 Salesforce 数据库任务表中的状态

javascript - 如何在触发 dom 时构建一个 `event` 对象的事件处理函数

javascript - onserverclick 事件在 C# 中使用 html 生成器不起作用

javascript - Web 应用程序 - Google 表格 - 带有输入字段的 html 表格

javascript - 检查数组是否包含特定字符串,然后选择该项目

javascript - 在下一行(新行)中显示嵌套对象属性