【问题标题】:Deleting multiple rows删除多行
【发布时间】:2011-06-28 11:07:47
【问题描述】:

我正在使用数据表,并且我选择了多行,我想对多行执行删除操作。例如,我选择了第 2、3 和 4 行,所以我希望同时删除所有 3 行。

<script>
var oTable;
var giRedraw = false;

$(document).ready(function() {
    /* Add a click handler to the rows - this could be used as a callback */
    $('#example tr').click( function() {
        if ( $(this).hasClass('row_selected') )
            $(this).removeClass('row_selected');
        else
            $(this).addClass('row_selected');
    } );


    /* Add a click handler for the delete row */
    $('#delete').click( function() {
        var anSelected = fnGetSelected( oTable );
        oTable.fnDeleteRow( anSelected[0] );
    } );

    /* Init the table */
    oTable = $('#example').dataTable( );
} );

function fnGetSelected( oTableLocal )
{
    var aReturn = new Array();
    var aTrs = oTableLocal.fnGetNodes();

    for ( var i=0 ; i<aTrs.length ; i++ )
    {
        if ( $(aTrs[i]).hasClass('row_selected') )
        {
            aReturn.push( aTrs[i] );
        }
    }
    return aReturn;
}

</script>

通过此脚本一次只删除 1 行。

【问题讨论】:

  • 正确打字也无妨。
  • 我是这个网站的新手,所以 ritenow 不能接受任何答案,因为信誉 15 是必须的。对此感到抱歉

标签: php mysql jquery-datatables


【解决方案1】:

试试这个。

$('#delete').click( function() {
    var anSelected = fnGetSelected( oTable );
    oTable.fnDeleteRow( anSelected ); 
    // previously it was anSelected[0] which select only frist element
} );

已编辑

我对 fnGetSelected() 函数进行了一些更改。可能有帮助

function fnGetSelected( oTableLocal )
{
    var aReturn = new Array();
    var aTrs = oTableLocal.fnGetNodes();

    for ( var i=0 ; i<aTrs.length ; i++ )
    {
        // removed $() because this is already DOM element.
        if ( aTrs[i].hasClass('row_selected') ) 
        {
            aReturn.push( aTrs[i] );
        }
    }
    return aReturn;
}

【讨论】:

  • 不,这不能解决我的目的。即使它从第 1 行开始删除,无论是否选中。
  • 如果 anSelected[0] 删除第一行而 anSelected 删除所有内容,为什么不使用“for (var n=0; n
  • anSelected[0] 删除多行中的第一个选定行。无论第一行是否被选中,anSelected 都会删除第一行。我想如果我选择 2,5,8 那么只有 2,5,8 应该被同时删除..
  • @Nightwolf thanx,很好的答案。
猜你喜欢
  • 2015-12-18
  • 2013-07-21
  • 2013-06-10
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
相关资源
最近更新 更多