我一直在研究一些Javascript代码,以便在HTML表格上执行一些数学运算。它首先计算一行的平均值,然后计算菜单中具有相同选择的所有行的平均值。
平均计算工作正常,但我已经用平均值计算了一些东西。我已经设置了一个示例JSFiddle:
http://jsfiddle.net/fmdataweb/c4gJU/3/
如果从菜单中选择“中等”作为风险,并输入“每周工时数”和“每年周数”的某些数字,它将计算平均值,但应将平均值放入“总中度”单元格中。如果您将菜单选项更改为“高”,则相同。
感谢有人可以指出我出错的地方 - 我是现阶段的Javascript新手。
答案 0 :(得分:5)
选择器$('#lastYear tr:has(.risk)').eq(i).find('td:last input')
与任何元素都不匹配。
<强> TEST 强>:
如果您在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来使您的选择器更短,更容易阅读。