Javascript Jquery多重加号/减号脚本

Javascript Jquery多重加号/减号脚本,javascript,jquery,Javascript,Jquery,我在一个页面上有多个表单,还有多个带加号/减号的输入框 我很难让这些输入框单独工作。可能是因为一些错误/相同的id或类似的东西,或者可能是我的代码设置错误。问题是我在代码中找不到我的错误,我的控制台中也没有任何错误 我所拥有的: function quantity_change(way, id){ quantity = $('#product_amount_'+id).val(); if(way=='up'){ q

我在一个页面上有多个表单,还有多个带加号/减号的输入框

我很难让这些输入框单独工作。可能是因为一些错误/相同的id或类似的东西,或者可能是我的代码设置错误。问题是我在代码中找不到我的错误,我的控制台中也没有任何错误

我所拥有的:

        function quantity_change(way, id){

          quantity = $('#product_amount_'+id).val();
          if(way=='up'){
            quantity++;
              } else {
              quantity--;
          }
          if(quantity<1){
            quantity = 1;
          }
          if(quantity>10){
            quantity = 10;
          }
          $('#product_amount_'+id).val(quantity);

        }

非常感谢您的帮助

您应该使用
closest()
方法通过class
change
访问父div,然后您可以读取数据属性id的值

var id = $(this).closest('.change').data('id');
alert(id);
由于您已经在使用非强制javascript绑定click事件,因此在HTML标记中不需要
onclick
代码

另外,您的
quantity\u change
方法接受2个参数并同时使用这两个参数,但您只传递一个参数。您可以在锚标记上保留HTML5数据属性中的
way
值,然后从中读取并将其传递给您的方法

<div class="change" data-id="1234">
    <a href="#" data-way="up" title="+" class="up">+</a>
    <a href="#" data-way="down" title="-" class="down">-</a>
 </div>

是一个工作示例。

您应该使用
最近的()
方法通过class
change
访问父div,然后您可以读取数据属性id的值

var id = $(this).closest('.change').data('id');
alert(id);
由于您已经在使用非强制javascript绑定click事件,因此在HTML标记中不需要
onclick
代码

另外,您的
quantity\u change
方法接受2个参数并同时使用这两个参数,但您只传递一个参数。您可以在锚标记上保留HTML5数据属性中的
way
值,然后从中读取并将其传递给您的方法

<div class="change" data-id="1234">
    <a href="#" data-way="up" title="+" class="up">+</a>
    <a href="#" data-way="down" title="-" class="down">-</a>
 </div>
这是一个工作样本

$(document).ready(function(){

     $('.change a').click(function(e){
          e.preventDefault();
          var _this=$(this);

          var id = _this.closest('.change').data('id');
          var way= _this.data("way");

          quantity_change(way,id)
     });

 });