我得到了NaN。我怎么能这样做,并在每次更改数量时更新它?
$('input[name="qtybox"]').change(function(){
var price = parseInt($(this).text(), 10)
* parseFloat($(this).closest('#price').text(), 10);
$("#tPrice").html(price);
});
<td id="price">2.79</td>
<td id="qty-box"><input type="text" name="qtybox"></td>
<td id="tPrice"></td>
答案 0 :(得分:1)
您是否正在寻找类似 jsFiddle example 的内容?
jQuery的:
$('input.qtybox').each(function() {
$(this).keyup(function() {
var price = $(this).parent().siblings('td#price').text();
var qty = $(this).val();
$(this).parent().siblings('td#tPrice').html(isNaN( ((price * qty).toFixed(2)) ) ? 0 : ((price * qty).toFixed(2)));
})
})
答案 1 :(得分:0)
答案 2 :(得分:0)
表格单元格没有值。请改用text
方法。
此外,将字符串2.79
解析为整数将只为2
提供。
parseFloat($(this).closest('#price').text())
答案 3 :(得分:0)
问题在于.closest()
查找链条。为了减少复杂性,不要指定边界:
$('#tPrice').each(function(){
var price = parseInt($('input[name="qtybox"]').val(), 10 * parseInt($('#price').val(), 10);
$(this).html(price);
});
保留当前型号:
$('#tPrice').each(function(){
var price = parseInt($(this).prevAll('input[name="qtybox"]').val(), 10 * parseInt($(this).prevAll('#price').val(), 10);
$(this).html(price);
});
虽然你真的不应该限制ID选择器,除非你有充分的理由,因为如果你这样做就无法优化它。