嗨,我在使用 change 方法更新计算结果时遇到问题。
计算是根据放置在表格行中的动态创建的数据进行的。所以每行的最后一列应该显示价格*数量的总和(数量来自动态创建的选择元素)。创建每一行的方法是从自动完成输入框中选择一个选项。
每次用户从 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 * price。
这里的 jSfiddle来说明我的问题。