只需点击一下即可删除多个选定的DataTable行?

时间:2013-10-23 16:27:33

标签: javascript jquery datatables

我使用Datatables中的一个示例来删除表中的行。这很好,一个接一个,但我需要能够选择和删除多行。我对//.removeClass('row_selected');进行了评论,因此用户可以在视觉上选择多行,但这些行仍然只能一次删除一行。想法? https://datatables.net/release-datatables/examples/api/select_single_row.html

http://jsfiddle.net/BWCBX/22/

的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');
}*

2 个答案:

答案 0 :(得分:6)

这将删除多行...

$('#delete').click( function() {
    var anSelected = fnGetSelected( oTable );
    $(anSelected).remove();
} );

这比在dataTables中使用内置删除方法更好,因为它在某一点上发生了巨大的变化。最初,它会在删除之间保留行索引,因此您可以删除第1行,然后删除第2行,然后删除第3行等。然后更改它以便您可以删除第1行,第2行将变为第1行,因此您必须再次删除第1行等。

使用上面的方法只是直接从表中删除行,这更容易,如果在任何时候更改dataTables的版本,将为您节省麻烦。

<强> http://jsfiddle.net/BWCBX/23/

答案 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个

这里是我的代码和演示

http://jsfiddle.net/BWCBX/95/