1 つの列 (ランキング) を持つ単純な 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);
});