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

JS统计radio单选按钮值时报错forEach is not a function如何解决

错误原因

  • document.getElementsByClassName 返回的是HTMLCollection类数组结构,没有内置forEach遍历方法,是触发你报错的直接原因。
  • 你查询选中单选框的语法错误,getElementsByClassName仅支持传入类名字符串,不能使用:checked这类选择器语法。

修复后可运行代码

document.addEventListener( 'DOMContentLoaded', event => {
  const text = document.getElementById('resultScore')
  // 使用querySelectorAll获取单选按钮,返回的NodeList支持forEach方法
  const radioElems = document.querySelectorAll('.radio')
  radioElems.forEach((radioElem) => { 
    radioElem.addEventListener('change', count)
  })

  const count = () => {
    let score = 0
    // 直接用选择器匹配所有选中的单选按钮
    document.querySelectorAll('.radio:checked').forEach(radioChecked => {
      score += parseInt(radioChecked.value, 10)
    })
    text.innerText = score
  }
})

可选兼容写法

如果你坚持使用getElementsByClassName,可以手动把类数组转为真实数组再调用forEach:

const radioElems = Array.from(document.getElementsByClassName('radio'))
// 或者用扩展运算符
const radioElems = [...document.getElementsByClassName('radio')]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:30:01