以下是取自 javascript.info 的表排序示例代码: https://plnkr.co/edit/5xHStBMfV5AVtoxR?p=preview&preview=
let sortedRows = Array.from(table.tBodies[0].rows).sort((rowA, rowB) => rowA.cells[0].innerHTML.localeCompare(rowB.cells[0].innerHTML));
table.tBodies[0].append(...sortedRows);
我的问题是:Array.from(table.tBodies[0].rows)
生成一个数组。但是 cells[0]
没有为数组定义。代码是如何工作的?
最佳答案
表的 .rows
属性为您提供表中行的 HTMLCollection。 Array.from
将行的 HTMLCollection 转换为行数组。
与
.sort((rowA, rowB) => rowA.cells[0] ...
每个参数都是正在迭代的数组项之一 - 一行 - rowA
和 rowB
都不是使用 Array.from< 创建的数组
。它们是数组元素,即行。
数组元素(最初是 HTMLCollection 元素)仍然是行 - 并且行具有 .cells
属性。
关于javascript - 使用 Javascript 对 HTML 表格进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73809130/