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

无法将DOM元素id作为键连同对应值推入JavaScript数组的问题求助

问题原因
  • 在ES5及更早的对象字面量语法中,键名会被默认当作字符串字面量处理,不会解析为变量值,你写的quote_str会直接作为固定键名存入对象
  • 额外给id拼接单引号var quote_str = "'" + id + "'"是多余操作,对象键名不需要额外包裹单引号
修复方案

使用ES6支持的计算属性名语法,将变量用方括号[]包裹,JS会自动将变量的实际值作为对象的键名。
你当前的选择器没有包含复选框控件,如果需要收集checkbox的值可以补充到选择器规则中,修正后的代码如下:

$('#btnClick').click(function() {
  saveDiv($("#div1"))
});

function saveDiv(div) {
  var controlValues = [];
  div.find('input:text, input:password, input:file, select, textarea, input:checkbox')
    .each(function() {
      var id = $(this).attr("id");
      controlValues.push({
        [id]: $(this).val()
      });
      console.log(controlValues);
    });
}
效果说明

修改后生成的数组结构符合预期,示例如下:

[
  {"vesselname": "输入的船名"},
  {"vesseltype": "选择的船型"},
  {"formCheck5": "复选框对应值"}
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:48:01