インデックス列の追加については、https ://datatables.net/examples/api/counter_columns.html のオンライン ドキュメントで詳しく説明されています。
音量スライダーに関しては、それを機能させるためのハックな方法を見つけました。thead に空の th を追加し、tbody の各行の先頭に td を追加しました。最初の td には、スライダー div と 3 の行スパンがあります (私の例には 3 行しかありません)。他の tds は、display:none のスタイルで空です。
<table id="myTable" class="display">
<thead>
<tr>
<th></th>
<th>Column 1</th>
<th>Column 2</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3">
<div id="slider"></div>
</td>
<td>Row 1 Data 1</td>
<td>Row 1 Data 2</td>
</tr>
<!-- Other rows here -->
</tbody>
</table>
JS では、ドキュメントに示されているインデックス列の例をいくつか変更して使用しました。DataTable の「initComplete」でスライダーを初期化し、テーブルがソートまたは検索されたときに再び初期化しています。
var table = $("#myTable").DataTable({
//Table options here
"initComplete":function(){
$("#slider").slider(sliderOpts);
}
});
table.on('order.dt search.dt', function(){
table.column(0, {search:'applied', order:'applied'}).nodes().each(function(cell, i){
if(i == 0){
$(cell).attr("rowspan","3").html("<div id='slider'></div>").css("display","table-cell");
$("#slider").slider(sliderOpts);
} else {
cell.innerHTML = '';
$(cell).css("display","none")
}
})
}).draw();
ここに私のソリューションの jsfiddle があります: https://jsfiddle.net/r7jwv76L/2/