jQuery:如何获取元素的特定子集?

时间:2020-10-16 12:47:22

标签: javascript jquery slice

我必须在网页上显示表格,然后将其打印出来。表行通过以下语句检索:

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。如何获取所需的行的子集?

谢谢!

1 个答案:

答案 0 :(得分:0)

尽管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());
}