情况是用javascript更新购物车。事件来自更改选项名称="变体-1和#34;的项目变化。有很多.shop项目。如果您从选择名称的更改中获得$(this),如何处理具有data-product-id的输入=" variation-1" =
<div class="product-tools shop-item">
<div class="count-input">
<a class="incr-btn" data-action="decrease" href="#">–</a>
<input class="quantity" type="text" data-product-id="7" value="3">
<a class="incr-btn" data-action="increase" href="#">+</a>
</div><!-- .count-input -->
<div class="form-element">
<select name="variation-1" class="form-control form-control-sm variation-select" data-toggle="tooltip" title="" data-original-title="color">
<option value="blue">blue</option>
<option value="red" selected="">red</option>
</select>
</div>
<div class="form-element">
<select name="variation-2" class="form-control form-control-sm variation-select" data-toggle="tooltip" title="" data-original-title="size">
<option value="S">S</option>
<option value="M">M</option>
<option value="L">L</option>
<option value="XL" selected="">XL</option>
<option value="XXL">XXL</option>
</select>
</div>
</div>
答案 0 :(得分:2)
这应该从相关输入中获取产品ID。它遍历到封闭的“shop-item”div,然后在其中搜索“quantity”类的输入,该类具有product-it数据属性:
var productID = $(this).closest(".shop-item").find(".quantity").data("product-id");
或者,如果要查找具有“data-product-id”属性的实际元素,可以执行以下注释中建议的内容:
var input = $(this).closest(".shop-item").find("[data-product-id]");