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

Vanilla JS中如何在forEach函数内获取选中input元素的ID?

解决原生JS获取选中input ID失败的问题

你的代码失效的核心原因是箭头函数的this指向特性:箭头函数不会创建自己的this上下文,它会继承外层作用域的this(这里是自执行函数的this,严格模式下为undefined,非严格模式下为全局window对象),所以this.id根本取不到当前选中的input元素的ID。

给你两种直接的修正方案:

方案1:使用箭头函数+回调参数

直接用forEach回调的参数(该参数就是当前遍历到的选中input元素)来获取ID,这是最简洁的写法:

(function () {
    const checkVariants = document.querySelectorAll("#variantRadios input:checked");
    checkVariants.forEach((checkVariant) => {
      console.log(checkVariant.id + " is checked")
    });
})();

方案2:使用普通函数+回调参数

如果你习惯用普通函数而非箭头函数,写法如下,效果完全一致:

(function () {
    const checkVariants = document.querySelectorAll("#variantRadios input:checked");
    checkVariants.forEach(function(checkVariant) {
      console.log(checkVariant.id + " is checked")
    });
})();

本质上就是把jQuery each方法里的this替换成原生forEach回调的参数——因为原生forEach不会像jQuery那样自动把this绑定到当前元素上,直接用参数是最稳妥的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:50:42