我一直在研究一些Javascript代码,以便在HTML表上执行一些数学运算。它首先计算一行的平均值,然后计算菜单中具有相同选择的所有行的平均值。
平均计算工作正常,但我已经破坏了平均值的总和。我已经设置了一个示例JSFiddle:
http://jsfiddle.net/fmdataweb/c4gJU/3/
如果您从菜单中选择“中等”作为风险并输入“每周工时数”和“每年工作周数”的某些数字,则会计算平均值,但应将平均值放入“总中度”单元格中。如果您将菜单选项更改为“高”,则相同。
感谢有人能指出我出错的地方 - 我是这个阶段的Javascript新手。
选择器$('#lastYear tr:has(.risk)').eq(i).find('td:last input')
不匹配任何元素。
测试:
如果你在alert($('#lastYear tr:has(.risk)').eq(i).find('td:last input').length)
行下面插入行var qty = parseFloat(...)
,弹出窗口将显示0
。
编辑:
var qty = parseFloat($('#lastYear tr:has(.risk)').eq(i).find('td:last').prev().find('input').val());
正如@Diego指出的那样,您的原始代码与具有按钮的单元格匹配,而不是input
。上面的代码选择最后一个之前的单元格,然后获取其输入。但是,我建议您使用自定义类或ID来使您的选择器更短,更容易阅读。