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

使用id变量访问JavaScript DOM元素返回undefined如何解决

问题原因
  • 核心错误为jQuery选择器语法使用不当:原代码$("#IDs[1]")会直接将IDs[1]作为静态id字符串匹配页面元素,而非读取IDs数组下标为1的元素值作为id查找,页面不存在id为IDs[1]的输入框,因此返回undefined。
修复方法

将选择器修改为动态拼接变量的形式即可,修改对应代码行:

// 原错误代码
// document.write($("#IDs[1]").val(), "</br>");
// 替换为以下写法
document.write($("#" + IDs[1]).val(), "</br>");
// ES6+ 环境也可以用模板字符串写法
// document.write($(`#${IDs[1]}`).val(), "</br>");
修复后完整可运行代码
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<table>
  <script>
    const IDs = ["Cell_1", "Cell_2"];
    document.write("<tr><td><input type='text' value='", IDs[0], "' class='qty' id='", IDs[0], "' name='A' ></td>");
    document.write("<td><input type='text' value='10' id='BB' name='B' ></td>");
    document.write("<td><input type='text' value='10' id='", IDs[1], "' name='B' ></td></tr>");
    document.write("<tr><td>");
    document.write("ID_1: ", IDs[0], "</br>");
    document.write($("#BB").val(), "</br>");
    document.write($("#" + IDs[1]).val(), "</br>");
    document.write("ID_2: ", IDs[1]);
    document.write("</td></tr>");
  </script>
</table>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:36:04