我必须在网页上显示一个表格,然后打印出来。表行由以下语句检索:
var rows = $element.find(".row");
将结果分成50行。现在的要求是:
- 每打印一页应该有20行
- 每个打印页都必须显示列标题,这些标题位于
rows[0]
和rows[1]
中
因此,我需要循环rows
集合,以便循环为我提供每页正确的子集,如下所示:
var printRows = rows.slice(0, 2) + rows.slice(2, 22); //values for page 1
var printRows = rows.slice(0, 2) + rows.slice(22, 42); //values for page 2
var printRows = rows.slice(0, 2) + rows.slice(42, 52); //values for page 3
我知道如何创建循环。问题是这些行不是有效的jQuery。如何获得所需的行的子集?
谢谢!
尽管jQuery对象并不是真正的数组,但它们可以像使用数组一样使用,既可以像使用slice
一样使用,也可以使用...
(排列(运算符。
下面是一个使用slice
和...
获取所需项目的示例。它使用一个数组,但也将使用包含DOM元素的jQuery对象。
const pageLength = 20;
const pageCount = 5;
const rows = [];
while (rows.length < pageCount * pageLength - 10) rows.push(rows.length);
for (let page = 1; page <= pageCount; page++) {
var result = [
...rows.slice(0, 2),
...rows.slice(2 + (page - 1) * pageLength, 2 + page * pageLength)
];
console.log("Page " + page + ":", result.toString());
}