頁面包含食物分類下拉、年齡段下拉、動態表格。選擇食物添加行,自動累加營養素,對比年齡段推薦值顯示差值。
change 事件 → 填充二級分類。<tr> 追加到 tbody。updateSumDiff():遍歷表格行累加各營養素 → 更新「合計」行 → 與年齡段值計算差值 → 更新「差距」行。// 數據結構
const food = { 穀物: { 大米: [熱量,蛋白質,脂肪,碳水,膽固醇], ... }, 蔬菜: {...} };
const age = { '1-7歲': [...], '8-15歲': [...] };
// 更新合計與差值
function updateSumDiff() {
const sum = [0,0,0,0,0];
$('#tbFood tr').each(function() {
$(this).find('td:gt(0):not(:last)').each(function(i) {
sum[i] += parseFloat(this.innerText) || 0;
});
});
$('#trSum td:gt(0):not(:last)').each(function(i) { this.innerText = sum[i]; });
$('#trDiff td:gt(0):not(:last)').each(function(i) {
const std = parseFloat($('#trAge td:gt(0):not(:last)').eq(i).text()) || 0;
this.innerText = std - sum[i];
});
}
data-* 屬性存儲原始數值,避免解析 innerText。