データテーブルを作成し、検索アクションの前にデータの行インデックスを取得できます。検索後にデータテーブルが行インデックスを取得できない
dataArray=[
[1, "Name1"],
[2, "Name2"], ,
[3, "Name23"],
];
var table = $('#tblName').DataTable({
scrollY: '40vh',
"scrollX": true,
scrollCollapse: true,
paging: false,
responsive:true,
data: dataArray,
});
$('#tblName tbody').on('click', 'tr', function() {
if ($(this).hasClass('selected1')) {
}
else
{
$('#tblName tbody tr ').each( function() {
if ($(this).hasClass('selected1')) {
$(this).removeClass('selected1');
}
});
$(this).addClass('selected1');
}
});
ローインデックスを取得して、dataArray
の値を変更したいとします。以下では、フィルタの入力テキストsearchName
とデータテーブルの後、私は正しい古い行のインデックスを取得することはできません1
$('#searchName').on('keyup', function() {
table
.columns(1)
.search(this.value)
.draw();
});
$('#tblName tbody').on('click', 'tr', function() {
$('#tblName tbody tr ').each( function() {
if ($(this).hasClass('selected1')) {
var rowindex=$(this).closest('tr').index();
var dataWareHouse = table.row(this).columns(1).data();
var selectedName = dataArray[0][rowindex];
console.log(selectedName);
}
});
});
欄にdataArray
にキーワードマッチでデータテーブルをフィルタリングするために、入力テキストsearchName
です。例えばsearchName
で入力:
はdatable iは最初の行をクリックすると、しかし、それはName1
を示しName2
とName23
、 の名前でのみ2行が表示されます。正しい戻り値はName2
を使用すると、行のインデックスを取得するAPIを使用しようとしたことがありますか? 'var rowindex = table.row(this).index()'? –