有一个在线商店。购物车页面上有几个项目。每个产品都有一个输入,其中包含所选产品的数量和多个 + 和 - 开关。在产品页面上,当一个输入时一切正常。但是在这个页面上,由于有几个元素,所以在切换数量的时候,这个数量会在所有字段中同时变化。代码中需要更改哪些内容以使其仅适用于所选字段?
<script type="text/javascript">
$(".order__increment").click(function(e) {
e.preventDefault();
$(".order__holder input").attr('value', parseInt($(".order__holder input").val()) + 1);
});
$(".order__decrement").click(function(e) {
e.preventDefault();
var val = parseInt($(".order__holder input").val()) - 1;
if(val < 1 )
val = 1;
$(".order__holder input").attr('value',val);
});
</script>
<div class="order__holder addtocart-group-field">
<input type="text" name="quantity[{{ product.cart_id }}]" value="{{ product.quantity }}" size="1" class="cart-form" />
<div class="atcg-is order__control">
<span class="order__arrow order__increment">+</span>
<span class="order__arrow order__decrement">-</span>
</div>
<button type="submit" data-toggle="tooltip" title="{{ button_update }}" class="refresh-cart-button">
<i class="fa fa-refresh"></i>
</div>
参考这个
内部事件处理程序,
this指的是当前单击元素的对象。可以这样获取所需的输入:
$(this).closest(".order__holder").find(".cart-form");所有内容都可以简化为: