您好我在使用更改方法更新计算结果时遇到问题。
计算是根据放置在表格行中的动态创建数据进行的。 所以每行的最后一列应该显示价格* qty的总和(qty是从动态创建的select元素派生的)。创建每一行的方法是从自动完成输入框中选择一个选项。
每次用户从dt中的select元素中选择选项时,应该更新该行的总和。它第一次工作,但第二次结果列转向NaN。
我想我可能会遇到如何使用
设置行的问题 $("tr").not(":first").each(function(){// meant to not get the header but the rest of the rows which have the data for the calculations
或数学部分。我从字符串中减去0使其成为一个数字,所以我想我不应该得到NaN。我知道我搞砸了一些似乎很明显的问题,但不是我。
$("tr").not(":first").each(function(){ var qnty = 0; $('select').change(function(){ qnty = $('select').val(); calcTotal(); }) function calcTotal(){ var price = (($(".price").text()) - 0).toFixed(2) $(".total").text(qnty * price); } })
总结问题。从第二次创建包含数据的行开始,计算不起作用。结果列中的结果是NaN。我显然希望结果是计算Total列中每行的qnty *价格。
这里以jSfiddle来说明我的问题。
答案 0 :(得分:2)
这将是代码:
$("tr").not(":first").each(function(){
var qnty = 0;
var $row=this;
$('select',$row).change(function(){
qnty = $('select',$row).val();
calcTotal($row);
})
function calcTotal($row){
var price = (($(".price",$row).text()) - 0).toFixed(2)
$(".total",$row).text(qnty * price);
}
})