You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何将多个range对象的取值相加并存储

解决方案

你当前的range取值展示方式完全可以适配后续求和需求,无需修改现有展示逻辑,可参考以下两种实现方式:

方法1:批量遍历取值(推荐,适配题量变更场景)

给所有测验用的range输入框统一加专属类名(比如你现有的form-range没有被其他元素占用可以直接用,也可以单独加quiz-range类避免冲突),然后批量选取求和:

// 求和函数
function getTotalScore() {
  // 选取所有测验range输入
  const allRanges = document.querySelectorAll('.form-range');
  let total = 0;
  allRanges.forEach(range => {
    // 转换为数字类型后累加,避免字符串拼接
    total += Number(range.value);
  });
  return total;
}

// 调用函数将总分存入变量
const totalScore = getTotalScore();

方法2:单独取值累加(适合固定5道题的场景)

如果题量固定不会变更,可以直接单独取每个range的值相加:

const q1Score = Number(document.getElementById('input1').value);
const q2Score = Number(document.getElementById('input2').value);
const q3Score = Number(document.getElementById('input3').value);
const q4Score = Number(document.getElementById('input4').value);
const q5Score = Number(document.getElementById('input5').value);

const totalScore = q1Score + q2Score + q3Score + q4Score + q5Score;

注意事项

  • 从range的value属性取到的值默认是字符串类型,必须用Number()转换为数字后再累加,否则会出现字符串拼接的错误结果
  • 如果需要实时更新总分,可以在每个range的oninput事件中调用求和函数,同步刷新总分变量

内容的提问来源于stack exchange,提问作者Davidcreates

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:54:00