SO question 35381534
HTML
<script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
<table class="table cart">
<thead>
<tr>
<th class="cart-product-thumbnail"> </th>
<th class="cart-product-name">Produto</th>
<th class="cart-product-quantity">Quantidade</th>
<th class="cart-product-price">Precço Unitario</th>
<th class="cart-product-subtotal">Total</th>
</tr>
</thead>
<tbody>
<tr class="cart_item">
<td class="cart-product-thumbnail">
</td>
<td class="cart-product-name">
<a href="#">Pera</a>
</td>
<td class="cart-product-quantity">
<div class="quantity clearfix">
<input type="button" value="-" class="minus" field="quantity">
<input type="text" id="quantity" name="quantity" value="1" class="qty" />
<input type="button" value="+" class="plus" field="quantity">
</div>
</td>
<td class="cart-product-price">
R$ <span id="price" class="amount">50000</span>
</td>
<td class="cart-product-subtotal">
<span id="total" class="total_amount"></span>
</td>
</tr>
<tr class="cart_item">
<td class="cart-product-thumbnail">
</td>
<td class="cart-product-name">
<a href="#">Uva</a>
</td>
<td class="cart-product-quantity">
<div class="quantity clearfix">
<input type="button" value="-" class="minus" field="quantity">
<input type="text" id="quantity" name="quantity" value="1" class="qty" />
<input...
JavaScript
function calculate(obj){
var amount = $(obj).closest('td').next('td').find('.amount');
var price = parseFloat(amount.val() || amount.text());
var quantity = parseInt($(obj).parent().find('.qty').val());
var total = price * quantity;
var target = $(obj).closest('td').next().next().find('.total_amount');
if(target.is('input')) {
target.val(total);
}
else {
target.text(total);
}
}
function changeQuantity(num,obj){
$(obj).parent().find('.qty').val( parseInt($(obj).parent().find('.qty').val())+num);
}
$().ready(function(){
//calculate();
$(".minus").click(function(){
changeQuantity(-1,this);
calculate(this);
});
$(".plus").click(function(){
changeQuantity(1,this);
calculate(this);
});
$(".qty").keyup(function(e){
if (e.keyCode == 38) changeQuantity(1,this);
if (e.keyCode == 40) changeQuantity(-1,this);
calculate(this);
});
});