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

如何用Javascript将HTML表格转带类型的二维数组并传递给Django表单复用

HTML表格转二维数组实现方案

实现逻辑

  • 分层遍历:先获取所有行元素,再遍历每行内的单元格,保证外层数组对应表格、内层数组对应行的嵌套结构
  • 自动类型转换:对单元格文本做整数合法性校验,符合规则的转int类型,其余保留原始字符串类型

修正后的完整代码

function tableToArray() {
  // 外层数组,存储整个表格数据
  const tableArray = [];
  // 如需仅获取tbody内的行,可将选择器改为 .table tbody tr
  const trList = document.querySelectorAll(".table tr");

  trList.forEach(tr => {
    // 每行对应一个子数组
    const rowArray = [];
    // 获取当前行所有单元格
    const tdList = tr.querySelectorAll("td");
    
    tdList.forEach(td => {
      const text = td.innerText.trim();
      // 校验是否为合法整数(支持负整数)
      if (/^-?\d+$/.test(text)) {
        rowArray.push(parseInt(text, 10));
      } else {
        rowArray.push(text);
      }
    });

    // 过滤空行,不需要可删除该判断
    if (rowArray.length > 0) {
      tableArray.push(rowArray);
    }
  });

  console.log(tableArray);
  return tableArray;
}

// 调用方法即可得到目标二维数组
const myTableArray = tableToArray();

后续对接Django表单注意事项

如果要跨页面传递或者提交给Django后端:

  • 前端先调用JSON.stringify(myTableArray)把二维数组转成JSON字符串
  • 可以将字符串存入表单的隐藏input字段,提交表单时Django后端通过json.loads()即可解析得到原始数组结构
  • 如果是异步提交,直接把JSON字符串放在请求体里传递即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:18:04