【发布时间】:2016-11-28 23:49:30
【问题描述】:
我已经搜索并无法找到将多个 HTML 表解析为多维数组的最佳方法。基本上我有这个 HTML:
<table>
<tr>
<td> T1 Row 1 Col 1</td>
<td> T1 Row 1 Col 2</td>
<td> T1 Row 1 Col 3</td>
</tr>
<tr>
<td> T1 Row 2 Col 1</td>
<td> T1 Row 2 Col 2</td>
<td> T1 Row 2 Col 3</td>
</tr>
</table>
<table>
<tr>
<td> T2 Row 1 Col 1</td>
<td> T2 Row 1 Col 2</td>
<td> T2 Row 1 Col 3</td>
<td> T2 Row 1 Col 4</td>
</tr>
<tr>
<td> T2 Row 2 Col 1</td>
<td> T2 Row 2 Col 2</td>
<td> T2 Row 2 Col 3</td>
<td> T2 Row 2 Col 4</td>
</tr>
</table>
我想自动将其转换为多维数组,而:
$pageTables array would return a length of 2 (tables)
$pageTables[1] would return a length of 2 (rows)
$pageTables[1][0] would return a length of 4 (columns)
$pageTables[0][1][2] would return a value of " T1 Row 2 Col 3"
这将运行的页面可以有任意数量的表,并且这些表可以有不同的列数。我稍后将应用的用于格式化表格的逻辑将取决于列数。
我知道这可能很容易,但我一辈子都无法让它发挥作用。
这是我迄今为止想出的,但当然行不通:
var data = Array();
$("table").each(function(i, v){
data[i] = Array();
$(this).children('tr').each(function(ii, vv){
data[i][ii] = Array();
$(this).children('td').each(function(iii, vvv){
data[i][ii][iii] = $(this).text();
});
});
})`
【问题讨论】:
-
没有自动......它必须被编码......展示你迄今为止的最佳尝试。另外,你为什么认为你需要一个数组?您很有可能已经拥有了表格本身所需要的东西。
-
请阅读How to Ask。关键词:“搜索和研究”和“解释......任何阻碍你自己解决的困难”。
-
您是否只是想创建一个引用数组以轻松访问元素然后传递给您的逻辑?
标签: jquery multidimensional-array