就是一个购物车功能,我想实现按加减按钮的时候,后面得小计能跟着变化!
<c:forEach var="buy" items="${buy_untreated.buy}">
<div class="col-sm-12 list-group-item">
<div class="col-sm-1 line-center" style="width: 50px;height: 50px;">
<img src="${buy.product_image}" style="height: 100%;" alt=""/>
</div>
<div id="g_name" class="col-sm-3 line-center">${buy.goods_name}</div>
<div id="d_price" class="col-sm-1 line-center">${buy.price}</div>
<div class="col-sm-4 line-center">
<button type="button" class="btn btn-default change-btn" state="reduce-button">
<span class="glyphicon glyphicon-minus" aria-hidden="true"></span>
</button>
<input type="number" class="small stock" value="${buy.stock}" name="stock"/>
<button type="button" class="btn btn-default change-btn" state="add-btn">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
</button>
</div>
<div id="cat_all_price" class="col-sm-2 line-center">${buy.all_price}</div>
<div class="col-sm-1 line-center"><button class="btn btn-danger del-btn" data ="${buy_untreated.id}-${buy.buy_id}">删除</button></div>
</div>
</c:forEach>
$("button.change-btn").click(function () {
var select = $(this).attr("state");
var stock = $(this).siblings("input");
**var price = $(this).parent().prev().html();**
**var all_price = $(this).parent().next().html();**
**//var price = $("#d_price").html();
//var all_price = $("#cat_all_price").html();**
if(select === "reduce-button"){
stock.val(parseInt(stock.val())-1);
$(this).parent().next().html(new Number(all_price)-new Number(price));
// alert(all_price);
//alert(price);
layer.msg('删除成功');
}else{
stock.val(parseInt(stock.val())+1);
$(this).parent().next().html(new Number(all_price)+new Number(price));
layer.msg('添加成功');
}
stock.trigger("propertychange");
});
一个很奇怪的问题我用var price = $("#d_price").html();
拿不到值,alert(price);
出来是这样的。
换成var price = $(this).parent().prev().html();就可以了!功能完美实现,就是搞不懂为啥前一个不行,希望有大佬能指出来,谢谢了!(本人纯菜鸟一枚,希望没搞出笑话!!!)