看一下这张表:
<table cellpadding="0" cellspacing="0" class="order_form">
<tr>
<th>Amount</th>
<th>Desc</th>
<th>Price</th>
<th>Total</th>
</tr>
<tr>
<td><input type="text" class="order_count" /></td>
<td>
<span class="order_desc">Middagstallerken</span>
</td>
<td>
<span class="order_price">1,15</span>
</td>
<td>
<span class="order_each_total"></span>
</td>
</tr>
[...]
</table>
输入金额后,我需要选择“order_price”类,并将其与输入“order_count”的值相乘,并将其放在“order_each_count”中。我有很多这样的行,所以我需要在行中找到下一个类。
我尝试过使用这样的功能但没有结果:
<script type="text/javascript">
$(document).ready(function(){
$('.order_count').keyup(function() {
var each_price = $(this).prevUntil("tr").find("span.order_price").text();
});
});
</script>
我希望有人有一个好的解决方案: - )
答案 0 :(得分:2)
$(document).ready(function(){
$('.order_count').keyup(function() {
var amount = parseInt($(this).val(), 10);
var each_price = $(this)
.closest('tr')
.find('span.order_price')
.text()
.replace(',', '.'); // Floats use . as separator
each_price = parseFloat(each_price);
total_price = amount * each_price;
// Update the value
$(this)
.closest('tr')
.find('span.order_each_total')
.text(total_price
.toFixed(2) // "Round" to two decimal places
.replace('.', ',') // Format properly
);
});
});
在尝试在计算中使用DOM中的数字时,请务必使用parseFloat
或parseInt
- 这些字符串是默认字符串。