我有一个简单的 HTML 表单/表格,其中一列(排名)有一个带有 2 个选项的选择菜单:中等或高。我需要找到排名列中的单元格 =“中等”的所有行,并计算同一行中另一个单元格的总数(平均小时数/周),并对单元格 =“高”的所有行重复此操作。这是一个 JS Fiddle,显示了一个示例空表单/表格:
请注意,行数不会预先固定 - 可能有 1 个或更多。我有一个脚本,可以根据输入到“小时/周”和“周/年”字段中的输入计算平均小时/周,但不能让它也计算 2 个排名中的每一个的总计。
只是为了澄清表单是否有这些选择:
Row 1: Ranking = "Moderate" Average Hours/Week = 2
Row 2: Ranking = "High" Average Hours/Week = 4
Row 3: Ranking = "Moderate" Average Hours/Week = 6
Row 4: Ranking = "High" Average Hours/Week = 8
Total Moderate 单元格的值应为 * (6 + 2),Total High 单元格的值应为 12 (4+*)。理想情况下,只要任何行的排名、小时/周或周/年值发生变化,就会发生这种情况。
到目前为止,这是我想出的对我不起作用的方法:
var moderateTotal = 0;
var highTotal = 0;
$("#activities").find("tr").each(function() {
var tr = $(this);
var level = tr.find("td:nth-child(2)").html();
var value = tr.find("td:nth-child(5)").html();
switch(level)
{
case "Moderate":
moderateTotal += value*1;
break;
case "High":
highTotal += value*1;
break;
}
});
$("#moderateTotal").val(moderateTotal);
$("#highTotal").val(highTotal);
});