代碼
<button id="table_id_example_button">獲取選中的行</button>
<table id="table_id_example" class="display">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row 1 Data 1</td>
<td>Row 1 Data 2</td>
</tr>
<tr>
<td>Row 2 Data 1</td>
<td>Row 2 Data 2</td>
</tr>
</tbody>
</table>
$(document).ready( function () {
var table = $('#table_id_example').dataTable({
//這樣配置後,即可用DT的API來訪問表格數據
columns: [
{data: "column1"},
{data: "column2"}
]
});
//給行綁定選中事件
$('#table_id_example tbody').on( 'click', 'tr', function () {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
}
else {
table.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
} );
//給按鈕綁定點擊事件
$("#table_id_example_button").click(function () {
var column1 = table.row('.selected').data().column1;
var column2 = table.row('.selected').data().column2;
alert("第一列內容:"+column1 + ";第二列內容: " + column2);
});
} );
異常
Uncaught TypeError: table.rows is not a function
API傳送門
https://datatables.net/reference/api/rows().data()
解決
因爲我代碼裏實例化dataTable對象時,用的是$('#table_id_example').dataTable
,這個小寫開頭的方法沒能獲取到API,所以需要改成$('#table_id_example').DataTable
,使用大寫的DataTable
對象去實例化,問題就解決了