在jQuery中计算一个 x另一个
我正在拿NaN。 我怎么能这样做,并在每次更改数量时更新它?
$('input[name="qtybox"]').change(function(){ var price = parseInt($(this).text(), 10) * parseFloat($(this).closest('#price').text(), 10); $("#tPrice").html(price); }); 2.79
你在找像这样的jsFiddle例子吗?
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))); }) })
parseInt()
计算为NaN。 您正在尝试从空字符串中解析整数。
请提供更完整的代码示例; 我相信问题是你应该在使用find()
时尝试使用closest()
find()
。
表格单元格没有值。 请改用text
方法。
另外,将字符串2.79
解析为整数将只给出2
。
parseFloat($(this).closest('#price').text())
问题是.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选择器,除非你有充分的理由,因为如果你这样做就无法优化它。