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

如何使用Javascript获取选中CheckBox对应的文本?

问题原因
  • document.querySelectorAll('input[type=checkbox]:checked') 返回的是符合条件的节点集合,不是单个DOM节点,直接调用childNodes属性会抛出类型错误。
  • <input> 是自闭合标签,本身不存在子节点,目标文本存储在<input>的父元素<label>内的第二个<span>标签中,无法通过<input>的子节点属性获取。
修复方案

首先提供通用的获取所有选中复选框对应文本的函数:

function getCheckedCheckboxTexts() {
  const checkedBoxes = document.querySelectorAll('input[type=checkbox]:checked')
  const result = []
  checkedBoxes.forEach(checkbox => {
    // 定位到父级label下存储文本的span节点
    const textNode = checkbox.parentElement.querySelector('.flex-1.uppercase')
    if (textNode) {
      result.push(textNode.textContent.trim())
    }
  })
  return result
}

判断是否选中「Sesame Free」的调用示例:

// 因为文本节点加了uppercase类,实际返回的是全大写文本,匹配时注意大小写
const isSesameFreeChecked = getCheckedCheckboxTexts().includes('SESAME FREE')

如果只需要判断当前是否有选中「Sesame Free」的复选框,也可以直接用选择器匹配:

const hasSesameFreeChecked = !!document.querySelector('input[type=checkbox]:checked ~ .flex-1.uppercase')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:24:02