你可以試試這個(我改變了你的html模板)。解決方案: 1.計算每一行(找到最接近的輸入並從中獲取數據) 2.計算總數並將其放在範圍內 3.如果您將添加更多選中的項目(使用我的工作班)
$(".work").on("change", function(){
var total = 0;
$(".work").each(function(){
var val = $(this).closest("tr").find("input[type='text']").val();
total = total + ($(this).val()*val || 0);
});
$(".total").text(total);
});
和HTML
<table>
<tbody>
<tr>
<th>Product name</th>
<th>Qty</th>
<th>Price</th>
<th align="center"><span id="amount" class="amount">Amount</span></th>
</tr>
<tr>
<td>Product 1</td>
<td>
<select value="" class="qty work" name="qty">
<option value="1">1</option>
<option value="2">2</option>
</select>
</td>
<td><input type="text" value="11.60" class="price"></td>
<td align="center"><span id="amount" class="amount">0</span> eur</td></tr>
<tr>
<td>Product 2</td><td>
<select value="" class="qty work" name="qty">
<option value="1">1</option>
<option value="2">2</option>
</select>
</td>
<td><input type="text" value="15.26" class="price"></td>
<td align="center"><span id="amount" class="amount">0</span> eur</td></tr>
<tr>
<td colspan="2"></td>
<td align="right"><span id="total" class="total">TOTAL</span> </td>
</tr>
</tbody>
</table>
而且work demo
你的解決方案是最短的!做得好,但它不會計算頁面加載?或者我錯了? – thecore7
確定它計算。只需要調用$(document).ready中的update_amounts()...檢查jsfiddle;) –
我的意思是總計,而不是子金額.. – thecore7