本文介绍如何为基于按钮点击动态生成分数的网页计分功能添加实时总分统计,通过维护全局累加变量、更新 dom 元素,实现每次点击后自动计算并显示当前总分。
本文介绍如何为基于按钮点击动态生成分数的网页计分功能添加实时总分统计,通过维护全局累加变量、更新 dom 元素,实现每次点击后自动计算并显示当前总分。
在当前的考试计分代码中,wrong_answer() 和 correct_answer() 函数各自独立创建 <div> 元素并写入固定值(-1 和 +3),但缺乏对总分的跟踪与展示。要实现“总分汇总”,关键在于:引入一个跨函数共享的累加变量,并在每次操作后同步更新总分显示区域。
首先,在全局作用域声明一个初始化为 0 的 sum 变量(推荐使用 let 以避免污染全局或意外重声明):
let sum = 0;
接着,重构两个事件处理函数,移除冗余的局部变量(如原 calc/calc2),直接使用固定分值逻辑,并更新 sum 与页面显示:
function wrong_answer() { const div_ele = document.createElement("div"); div_ele.innerHTML = "-1"; // 显示本次扣分 div_ele.className = "div_wrong"; document.getElementById("div1").appendChild(div_ele); sum -= 1; // 累加:错误答案扣1分 document.getElementById("sum").textContent = sum; // 实时更新总分}function correct_answer() { const div_ele = document.createElement("div"); div_ele.innerHTML = "+3"; // 显示本次加分 div_ele.className = "div_correct"; document.getElementById("div2").appendChild(div_ele); sum += 3; // 累加:正确答案加3分 document.getElementById("sum").textContent = sum; // 实时更新总分}
同时,在 HTML 中添加总分显示容器(建议使用语义化 <span> 包裹):
<div>Sum is: <span id="sum">0</span></div><div id="div1" class="div_wrong"></div><div id="div2" class="div_correct"></div>
? 注意:原代码中 div_ele.innerHTML = calc - calc2 实际等价于固定值(0 - 1 = -1 / 0 - (-3) = 3),因此可直接简化为字面量,提升可读性与性能。
通过以上改造,你的计分系统即可在保持原有交互体验的同时,精准、实时地呈现累计总分——真正实现“所见即所得”的考试评分效果。