表格選擇器
表格的選擇器選項。
說明
DataTables 的 tables()
和 table()
方法提供了選擇 API 實例上下文中包含的完整表格集合或子集的能力。API 實例的上下文是 DataTables,當使用可用的方法執行操作時,該實例將對這些 DataTables 執行操作(例如,可以通過單個呼叫更改多個表格的頁面)。有關 API 如何運作的更多資訊,請參閱API 手冊。
大多數 API 呼叫將自動對 API 上下文中的所有表格進行操作,但是 tables()
和 table()
方法可用於選擇這些表格的子集。選擇內容以及選擇器實際如何運作由這個 table-selector
資料類型控制。
選項
表格選擇器可以用多種不同的形式給出,使其易於應用於您的資料和使用案例
- 無選擇器 - 選擇所有表格
integer
- 表格索引選擇器string
- jQuery 選擇器node
-table
元素選擇器jQuery
- 表格節點的 jQuery 物件array
- 包含上述任何選項組合的陣列
無選擇器
如果未給出選擇器(更具體地說,是 undefined
),則會選擇所有表格。
從目前上下文中的所有表格取得資料
var tables = new DataTable('.dataTable');
var allData = tables.tables().rows().data();
// note that the above is the same as:
// tables.rows().data(); as `rows()` operates on
// all tables in the current context!
integer
如果為表格選擇器提供整數,則會選擇上下文中具有該索引的表格。
取得目前上下文中第一個表格的節點
var tables = new DataTable('.dataTable');
var data = tables.table( 0 ).data();
string
當選擇器以字串形式給出時,它會被視為一個 jQuery 選擇器,該選擇器對 table
元素本身進行操作。有關 jQuery 選擇器可用選項的完整資訊,請參閱 jQuery 選擇器文件。
請注意,就像 jQuery 選擇器一樣,當選擇器以字串形式提供時,可以使用逗號分隔表示法(即僅以逗號分隔)來提供多個選擇器。
依類別名稱選擇表格
var tables = new DataTable('.dataTable');
tables
.tables('.cell-selector')
.page( 'next' )
.draw( false );
依 ID 選擇表格
var tables = new DataTable('.dataTable');
var table = tables.table('#example');
依 ID 選擇兩個表格
var tables = new DataTable('.dataTable');
tables.tables('#clients, #owners');
node
tables
DOM 元素可以作為表格選擇器給出,以從該 DOM 元素中選擇 DataTabels API 中的表格。當您只有 DOM 節點作為參考時,例如在事件處理常式中,這對於從行中獲取資料或執行其他基於行的操作非常有用。
取得點擊的表格的資料
var tables = new DataTable('.dataTable');
$('.dataTable tbody').on( 'click', 'tr', function () {
var tableData = tables.table( this.parentNode.parentNode );
// ... do something with `tableData`
} );
jQuery
與上面的 node
類型非常相似(因為 jQuery 物件是 DOM 節點的類陣列清單),可以將 jQuery 實例作為表格選擇器給出,其中由 jQuery 選取且與 API 實例上下文中可用的節點相符的任何節點。
取得點擊的表格的資料
var tables = new DataTable('.dataTable');
$('.dataTable tbody').on( 'click', 'tr', function () {
var tableData = tables.table( $(this).parents('table') );
// ... do something with `tableData`
} );
array
可以將以上任何選項的組合作為選擇器一起給出,提供一種選擇多個表格或混合選擇器類型的方法,只需在陣列中提供您想要的選擇器選項即可。
取得基於 id 的兩個表格的資料
var tables = new DataTable('.dataTable');
var data = tables.tables( ['#table-1', '#table-3'] ).data();
混合 table-selector
類型 - id 和類別選擇器
var tables = new DataTable('.dataTable');
var data = table.tables( ['#table-1', '.important'] ).data();