我使用Datatables中的一个示例来删除表中的行。这很好,一个接一个,但我需要能够选择和删除多行。我对//.removeClass('row_selected');
进行了评论,因此用户可以在视觉上选择多行,但这些行仍然只能一次删除一行。想法?
https://datatables.net/release-datatables/examples/api/select_single_row.html
的jQuery
var oTable;
$(document).ready(function() {
/* Add a click handler to the rows - this could be used as a callback */
$("#example tbody tr").click( function( e ) {
if ( $(this).hasClass('row_selected') ) {
$(this).removeClass('row_selected');
}
else {
oTable.$('tr.row_selected')//.removeClass('row_selected');
$(this).addClass('row_selected');
}
});
/* Add a click handler for the delete row */
$('#delete').click( function() {
var anSelected = fnGetSelected( oTable );
if ( anSelected.length !== 0 ) {
oTable.fnDeleteRow( anSelected[0] );
}
} );
/* Init the table */
oTable = $('#example').dataTable( );
} );
/* Get the rows which are currently selected */
function fnGetSelected( oTableLocal )
{
return oTableLocal.$('tr.row_selected');
}*
答案 0 :(得分:6)
这将删除多行...
$('#delete').click( function() {
var anSelected = fnGetSelected( oTable );
$(anSelected).remove();
} );
这比在dataTables中使用内置删除方法更好,因为它在某一点上发生了巨大的变化。最初,它会在删除之间保留行索引,因此您可以删除第1行,然后删除第2行,然后删除第3行等。然后更改它以便您可以删除第1行,第2行将变为第1行,因此您必须再次删除第1行等。
使用上面的方法只是直接从表中删除行,这更容易,如果在任何时候更改dataTables的版本,将为您节省麻烦。
答案 1 :(得分:3)
这是我的版本,它将在页脚中删除多行并更新数据信息
$('#delete').click( function() {
var anSelected = fnGetSelected( oTable );
for (var i = 0; i < anSelected.length; i++) {
oTable.fnDeleteRow(anSelected[i]);
};
});
数据表有删除功能行,但只有1行。所以我只是循环它。信息也会更新。
显示3个参赛作品中的1到3个
这里是我的代码和演示