{hero}

cells().every()

自:DataTables 1.10.6

迭代選取的每個儲存格,並將函數上下文設定為有問題的儲存格。

說明

DataTable API 中常用的操作是對儲存格的集合執行操作 - 對每個儲存格執行常見的動作,例如新增事件處理常式、更新資料等。這種儲存格的迭代可以在 DataTables 中以多種方式執行,每種方式都有其優勢

cells().every() 方法很可能在大多數情況下最有用,因為它將回呼函數的上下文設定為有問題的儲存格的 cell() 實例(通常 DataTables API 中的回呼會將其上下文設定為最上層的 API 階層)。簡而言之,這表示您可以使用諸如 cell().data() 等方法,作為此方法提供的回呼中的 this.data()

請考慮以下使用 each() 的範例,它會迭代已選取的儲存格索引 - 我們需要取得每個儲存格的 cell() 物件才能直接使用它

table.cells().eq(0).each( function ( index ) {
    var cell = table.cell( index );

    var data = cell.data();
    // ... do something with data(), or cell.node(), etc
} );

使用 cells().every() 可以將其改寫為

table.cells().every( function () {
    var data = this.data();
    // ... do something with data(), or this.node(), etc
} );

儘管在程式碼呈現方面相對簡單的優化,但它可以使程式碼更易讀且直觀。從 DataTables 2 開始,它也顯著提高了效能,因為 API 實例不需要在每次迴圈時建立。

另一個優點是表格內容會自動處理 - 在上面的第一個範例中,使用 each() 的情況下,使用 eq() 方法僅從 API 內容中的第一個表格選取資訊,如果使用多個表格,則會引入複雜性。在 cells().every() 中,表格內容會自動設定為已選取之每個儲存格的適當表格。

類型

function cells().every( fn )

說明

迭代每個選取的儲存格

參數
傳回

選取儲存格的 DataTables API 實例。

範例

將類別新增至符合來源資料中邏輯要求的儲存格

var table = new DataTable('#myTable');

table.cells().every(function () {
	if (this.data() > 50) {
		$(this.node()).addClass('warning');
	}
	else {
		$(this.node()).removeClass('warning');
	}
});

相關

以下選項直接相關,在您的應用程式開發中也可能很有用。