{hero}

iterator()

自: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 實例
    • 否則,將傳回原始實例以進行鏈接。

這稍微複雜一些,目的是確保與沒有 returns 參數且嘗試自動判斷是否需要新 API 實例的 DataTables 版本向後相容。為了簡化,如果您的方法傳回值,請始終將 returns 設定為 true

請注意,回呼函式是在 DataTables API 實例的範圍內執行的,該實例的上下文僅設定為傳遞到函式的第一個參數所描述的表格。這可以使存取該特定表格的 API 方法更加容易。

類型

function iterator( [flatten,] type, callback [, returns ] )

說明

迭代表格、列、欄或儲存格索引的結果集

參數
傳回值

如果回呼未傳回任何結果(即 undefined),則為原始 API 實例,否則為一個新的 API 實例,其結果集是回呼的結果,按執行順序排列。

範例

為表格中的每一列新增類別

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