简体   繁体   English

如何为每个jquery兄弟的add / sub值创建click事件

[英]How to make a click event for add/sub value for each jquery sibling

I am trying but failed to make a jquery event to increment/decrement input value on click add/sub button. 我正在尝试,但是未能通过单击添加/子按钮使jquery事件增加/减少输入值。 It will work for each row separately. 它将分别为每一行工作。

 <tr>
    <td>
        <button id="SUB">SUB</button>
        <input type="number" name="" id="" value="1">
        <button id="ADD">ADD</button>
    </td>
    <td>
        <button id="SUB">SUB</button>
        <input type="number" name="" id="" value="1">
        <button id="ADD">ADD</button>
    </td>
    <td>
        <button id="SUB">SUB</button>
        <input type="number" name="" id="" value="1">
        <button id="ADD">ADD</button>
    </td>
    <td>
        <button id="SUB">SUB</button>
        <input type="number" name="" id="" value="1">
        <button id="ADD">ADD</button>
    </td>
</tr>
 $(document).on('click', '#add', function(){
    var value  = $(this).siblings('input').val();
    $(this).siblings('input').value = ++value;
 });
 $(document).on('click', '#sub', function(){
    var value  = $(this).siblings('input').val();
    $(this).siblings('input').value = --value;
 });

You need to use .val() method to get/set its inputs value. 您需要使用.val()方法来获取/设置其输入值。

Identifiers in HTML must be unique , I would recommend you assign common class to button elements and use Class Selector ('.class') to target them. HTML中的标识符必须唯一 ,我建议您为按钮元素分配通用类,并使用类选择器('.class')来定位它们。

 $(document).on('click', '.add', function() { $(this).siblings('input').val(function(_, value) { if (value == undefined) return 0; return parseInt(value, 10) + 1; }); }); $(document).on('click', '.sub', function() { $(this).siblings('input').val(function(_, value) { if (value == undefined) return 0; return parseInt(value, 10) - 1; }); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table> <tr> <td> <button class="sub">SUB</button> <input type="number" name="" id="" value="1"> <button class="add">ADD</button> </td> <td> <button class="sub">SUB</button> <input type="number" name="" id="" value="1"> <button class="add">ADD</button> </td> <td> <button class="sub">SUB</button> <input type="number" name="" id="" value="1"> <button class="add">ADD</button> </td> <td> <button class="sub">SUB</button> <input type="number" name="" id="" value="1"> <button class="add">ADD</button> </td> </tr> </table> 

Please try this - 请尝试这个-

$(this).siblings('input').val(--value);

in place of - 代替-

$(this).siblings('input').value = --value;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM