数据表删除列值等于某一行的行

时间:2017-03-16 16:17:26

标签: javascript jquery datatables

我尝试过以下操作,但无法找到匹配项。我做错了什么?

 var table = $('#mytable').DataTable();

//hide the row where text in column 1 equals 202733001010
                var index = table.row().eq( 0 ).filter( function (rowIdx) {
                    return table.cell( rowIdx, 0 ).data() === '202733001010' ? true : false;
                } );

我得到的是一个复杂的空数组,似乎没有任何值。我的最终目的是删除列单元格(在本例中为0)等于某个值的行,但我想我可能正在使用不正确的方法。非常感谢你的建议。数据表文档:https://datatables.net/reference/type/row-selector

1 个答案:

答案 0 :(得分:2)

如果您的目标是实际删除行(过滤器和搜索只是隐藏/显示匹配数据),下面的逻辑可以相当直接地执行。我使用一个文本框输入一个值,以便从第一列中获取。如果找到,我将其删除。

在此处查看工作http://live.datatables.net/natejiju/1/edit

$(document).ready( function () {
    var table = $('#example').DataTable();
    $("#btnGo").on("click", function(){

        var s =  $("#txtSearch").val();
        table.rows().nodes().each(function(a,b) {
            if($(a).children().eq(0).text() == s){
               table.rows(a).remove();
             }
          } );


          table.rows().invalidate();
          table.draw();
        });

      });