我正在编写一些 JS 来对 HTML 表进行排序:HTML 表有一个标题行,单击列的标题会根据该列对行进行排序。我的一般算法如下:
- 将 HTML 转换为 JavaScript 数组。
- 对 JavaScript 数组进行排序。
- 将 JavaScript 数组重新转换为 HTML 表格。
现在,我的代码替换了表格的所有 innerHTML 元素。基本上,在对 JS 数组进行排序之后,它会触及表的每个节点,重写它的 innerHTML 值。我觉得可能有一种更有效的方法可以做到这一点,但我想不出。
编辑:
这是执行上述算法的第 (3) 部分的代码。我编辑了不相关的部分(只是一些字符串转换)。索引有点奇怪,因为我在将表格转换为数组时跳过了标题行,所以我在重写表格时对此进行了补偿。
for (var i = 0; i < numRows-1; i++){
for (var j = 0; j < numCols; j++){
var arrCell = tableArr[i][cols[j]];
tableEl.rows[i+1].cells[j].innerHTML = arrCell;
}
}