迭代器()
迭代表、行、列或单元格索引的结果集。
描述
使用 DataTables 索引的集合(例如由 tables()
、rows()
、columns()
和 cells()
放在结果集中的索引)时,你通常希望按顺序遍历索引并对每个索引指向的元素执行某些操作。虽然这可以通过一两个 for
循环轻松实现,但此方法可以通过为你执行这些循环来帮助简化并减少代码。
重要提示:请注意,如果你使用 rows()
、columns()
和 cells()
,在 DataTables 1.10.6 起,你可能希望使用 rows().every()
、columns().every()
和 cells().every()
方法来迭代每一行、每一列或每一个单元格,其中上下文设置为该表元素,因为对于大多数情况而言,这些方法可以简化你的代码,而这是 iterator()
方法无法做到的。
有许多类型的可用的循环(由 type
参数指定),并且这些循环类型也会影响传递给回调函数的参数
table
- 对实例的上下文(即表)进行循环- 表设置对象
- 循环计数器
columns
- 对结果集中的每一项进行循环- 表设置对象
- 结果集项
- 循环计数器
column
- 对结果集中的每一张表和每一列进行循环- 表设置对象
- 列索引
- 表计数器(外部)
- 列计数器(内部)
column-rows
- 对结果集中的每一张表、每一列和每一行进行循环,应用selector-modifier
。- 表设置对象
- 列索引
- 表计数器(外部)
- 列计数器(内部)
- 行索引
rows
- 对结果集中的每一项进行循环- 表设置对象
- 结果集项
- 循环计数器
row
- 对结果集中的每一张表和每一行进行循环- 表设置对象
- 行索引
- 表计数器(外部)
- 行计数器(内部)
cell
- 对结果集中的每一张表和每一个单元格进行循环- 表设置对象
- 行索引
- 列索引
- 表计数器(外部)
- 单元格计数器(内部)
回调的返回值影响了此方法的返回值
- 如果
returns
参数设置为true
,将返回一个新的 API 实例,其中包含其结果集中的结果。 - 否则,或
returns
为false
- 如果回调返回值,将返回一个新的 API 实例
- 否则,将在对
chain
进行链式调用时返回原始实例。
这有点复杂,目的是为了确保向后兼容那些没有 returns
参数并尝试自动确定是否需要一个新的 API 实例的 DataTables 版本。为了简化操作,始终将 returns
设置为 true
(如果你的方法返回一个值)。
说明回调函数在 DataTables API 实例的范围内执行,该范围内仅包括函数的第一个参数所描述的表上下文。这样可以更轻松地访问该特定表的 API 方法。
类型
函数 迭代器( [扁平化,] 类型、回调 [返回] )
- 描述
对表、行、列或单元格索引的结果集进行迭代
- 参数
名称 类型 可选 1 扁平化
是 - 默认为:false 如果为
true
,返回 API 实例的结果集将是 1D 数组(即,扁平化为单个数组)。如果为false
(或未指定),每个结果都将连接到实例的结果集中。请注意,只有从回调返回数组时,这才是相关的。2 类型
否 迭代器类型 - 参见上文中的选项
3 回调
否 在每次迭代时执行的回调函数。有关传递给函数的参数,请参阅上文中的文档。因为它在 API 实例的范围内执行,其上下文仅设置为有问题的表。
4 返回
是 - 默认为:false 。指示回调函数是否返回了值。如果设置为
true
,将返回一个新的 API 实例,其结果集包含回调函数的返回值。如果未设置或为false
,则返回原始实例以用于链接,如果回调方法未返回任何值,则返回原始实例。- 返回
如果回调未返回任何结果(即
undefined
),则返回原始 API 实例,或返回一个新的 API 实例,其结果集为回调的结果,按执行顺序排列。
示例
在表中的每一行中添加一个类
table.rows().iterator('row', function (context, index) {
$(this.row(index).node()).addClass('lowlight');
});