迭代器()
迭代表、行、列或单元格索引的结果集。
描述
使用 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');
});