如何使用 <input> 无需暴力破解即可读取 100 多个 HTML 表格单元格?

问题描述 投票:0回答:1

我正在尝试从 HTML 表中读取大量数据(大约 200 个单元格),其中数据是通过

<td><input name="xxxx"></td>
标签输入的。

名称标签递增,即 v1、v2、v3 等,但从我看来,我认为我无法使用通配符通过循环读取(这是错误的吗?)。

除了暴力(一次读取一个输入变量)之外,有谁有我可以使用的任何方法(HTML 或 JavaScript)吗?

我尝试过的:

我尝试使用

var rows = document.getElementsByClassName('class')
读取行,但它从 HTML 读取文本标签,当我添加
.value
选项时,它不会读取任何内容。

我尝试查看是否可以使用连接到文本的循环迭代来创建变量名称来在循环中创建变量,但没有运气。

我还考虑过将条目复制到不同的表格单元格,但除了一次一个单元格之外找不到其他方法来执行此操作。

javascript html
1个回答
0
投票

这是一个例子。给出下表:

<table id="table1">
  <thead>
    <tr>
      <th>Col 1</th>
      <th>Col 2</th>
    </tr>
  </thead>
  <tboday>
    <tr>
      <td><input type="text" value="cell 1"></td>
      <td><input tpye="text" value="cell 2"></td>
    </tr>
    <tr>
      <td><input type="text" value="cell 3"></td>
      <td><input tpye="text" value="cell 4"></td>
    </tr>
  </tboday>
</table>

您可以通过迭代表格并查找输入来“读取”输入值:

let table = document.getElementById("table1");
for (let row of table.rows) {
  for (let cell of row.cells) {
    let inputElem = cell.getElementsByTagName('input')[0];
    //not all cells in the table have inputs, so skip the ones that don't
    if (inputElem === undefined) continue;
    console.log(inputElem.value)
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.