jQuery代码控制所有块,而不是所选块

jQuery代码控制所有块,而不是所选块,jquery,Jquery,我使用此HTML块来控制数量: <div class="cart-product-quantity"> <div class="quantity m-l-5"> <input type="button" class="minus" value="-"> <input type="text" cla

我使用此HTML块来控制数量:

<div class="cart-product-quantity">
    <div class="quantity m-l-5">
        <input type="button" class="minus" value="-">
        <input type="text" class="qty" value="1">
        <input type="button" class="plus" value="+">
    </div>
</div>
我的问题是因为我在很多地方都有HTML,JS代码控制所有的块,而它应该控制所选的块

请问我怎么换这个


谢谢。

您需要在
单击事件处理程序中使用
this
关键字来引用单击的按钮。在这里,您可以遍历DOM以查找相关的
输入
元素,在下面的示例中,我使用
兄弟()

此外,请注意,您可以使用
Math.max()
简化条件,以确保值不能小于1。试试这个:

jQuery($=>{
$('qty').prop('disabled',true);
$('.plus')。单击(函数(){
$(this).sides('.qty').val((i,v)=>parseInt(v,10)+1);
});
$('.减号')。单击(函数(){
$(this).sides('.qty').val((i,v)=>Math.max(1,parseInt(v,10)-1));
});
});

.cart product quantity>.quantity
块上设置事件可确保事件在正确的位置触发。签出下面的代码段

$(文档).ready(函数(){
setProductQuantityEvents();
});
函数setProductQuantityEvents(){
变量$productQuantity=$('.cart产品数量>.quantity');
$productQuantity.find('.qty').prop('disabled',true);
$productQuantity.on('click','plus',函数(){
变量$this=$(this),
$quantity=$this.sides('.qty'),
qty=parseInt($quantity.val())+1;
$quantity.val(数量);
}).on('单击','减去',函数(){
变量$this=$(this),
$quantity=$this.sides('.qty'),
qty=parseInt($quantity.val())-1;
$quantity.val(数量<1?1:数量);
})
}

这是否回答了您的问题?
$(document).ready(function(){
    $('.qty').prop('disabled', true);
    $('.plus').click(function(){
        $('.qty').val(parseInt($('.qty').val()) + 1 );
    });
    $('.minus').click(function(){
        $('.qty').val(parseInt($('.qty').val()) - 1 );
        if ($('.qty').val() == 0) {
            $('.qty').val(1);
        }
    });
});