0

我一直在编写一些 Javascript 代码来对 HTML 表执行一些数学运算。它首先计算一行的平均值,然后计算菜单中具有相同选择的所有行的平均值的总和。

平均计算工作正常,但我已经用平均值的总数打破了一些东西。我已经设置了一个示例 JSFiddle:

http://jsfiddle.net/fmdataweb/c4gJU/3/

如果您从菜单中选择“中等”作为风险并为每周的小时数和每年的周数输入一些数字,它将计算平均值,但它应该将平均值放入“中等”单元格的总数中。如果您将菜单选择更改为“高”,则相同。

感谢有人能指出我哪里出错了——我是现阶段的 Javascript 新手。

4

1 回答 1

5

选择器$('#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 来使您的选择器更短且更易于阅读。

于 2012-08-14T13:23:53.497 回答