{hero}

迭代器()

自 DataTables 1.10 起

迭代表、行、列或单元格索引的结果集。

描述

使用 DataTables 索引的集合(例如由 tables()rows()columns()cells() 放在结果集中的索引)时,你通常希望按顺序遍历索引并对每个索引指向的元素执行某些操作。虽然这可以通过一两个 for 循环轻松实现,但此方法可以通过为你执行这些循环来帮助简化并减少代码。

重要提示:请注意,如果你使用 rows()columns()cells(),在 DataTables 1.10.6 起,你可能希望使用 rows().every()columns().every()cells().every() 方法来迭代每一行、每一列或每一个单元格,其中上下文设置为该表元素,因为对于大多数情况而言,这些方法可以简化你的代码,而这是 iterator() 方法无法做到的。

有许多类型的可用的循环(由 type 参数指定),并且这些循环类型也会影响传递给回调函数的参数

  • table - 对实例的上下文(即表)进行循环
    1. 表设置对象
    2. 循环计数器
  • columns - 对结果集中的每一项进行循环
    1. 表设置对象
    2. 结果集项
    3. 循环计数器
  • column - 对结果集中的每一张表和每一列进行循环
    1. 表设置对象
    2. 列索引
    3. 表计数器(外部)
    4. 列计数器(内部)
  • column-rows - 对结果集中的每一张表、每一列和每一行进行循环,应用 selector-modifier
    1. 表设置对象
    2. 列索引
    3. 表计数器(外部)
    4. 列计数器(内部)
    5. 行索引
  • rows - 对结果集中的每一项进行循环
    1. 表设置对象
    2. 结果集项
    3. 循环计数器
  • row - 对结果集中的每一张表和每一行进行循环
    1. 表设置对象
    2. 行索引
    3. 表计数器(外部)
    4. 行计数器(内部)
  • cell - 对结果集中的每一张表和每一个单元格进行循环
    1. 表设置对象
    2. 行索引
    3. 列索引
    4. 表计数器(外部)
    5. 单元格计数器(内部)

回调的返回值影响了此方法的返回值

  • 如果 returns 参数设置为 true,将返回一个新的 API 实例,其中包含其结果集中的结果。
  • 否则,或 returnsfalse
    • 如果回调返回值,将返回一个新的 API 实例
    • 否则,将在对 chain 进行链式调用时返回原始实例。

这有点复杂,目的是为了确保向后兼容那些没有 returns 参数并尝试自动确定是否需要一个新的 API 实例的 DataTables 版本。为了简化操作,始终将 returns 设置为 true(如果你的方法返回一个值)。

说明回调函数在 DataTables API 实例的范围内执行,该范围内仅包括函数的第一个参数所描述的表上下文。这样可以更轻松地访问该特定表的 API 方法。

类型

函数 迭代器( [扁平化,] 类型、回调 [返回] )

描述

对表、行、列或单元格索引的结果集进行迭代

参数
返回

如果回调未返回任何结果(即 undefined),则返回原始 API 实例,或返回一个新的 API 实例,其结果集为回调的结果,按执行顺序排列。

示例

在表中的每一行中添加一个类

table.rows().iterator('row', function (context, index) {
	$(this.row(index).node()).addClass('lowlight');
});