2

我有一个使用数据表插件的表。我正在尝试使用以下方法动态删除一行:

$(document).ready(function() {

    var oTable = $("table#demo-dtable-02").dataTable({"aaSorting": []});

    $(".icon-remove").on('click',function(){
        var anSelected = fnGetSelected( oTable );
        deleted=oTable.fnDeleteRow(anSelected[0] );
      });

              });

我收到以下错误 ReferenceError: fnGetSelected is not defined 我试过使用(从这里:jQuery Data Tables plugin not remove table row

$(this).parent('tr').remove();

这当然会删除该行,但不会重置页脚中的文本,例如 Showing 1 to 10 of 17 entries。以这种方式删除并不是解决此问题的最佳方法。

我的 DOM 代码如下所示:

<?PHP
                                            $count=1;
foreach($ledgers as $row) {?>
    <tr >
    <td><a onClick="viewDetails(<?PHP echo $row['id'];?>)" style="cursor:pointer"><?PHP echo $row['name'];?></a></td>

     <td><?PHP echo $row['email'];?></td>
     <td><?PHP echo $row['contact_number'];?></td>

     <td>
     <i class="icon-remove" rowcount=<?PHP echo $count;?> style="cursor:pointer; margin-right:5px" title="Remove Ledger" id="removeLedgerNow"></i>

    <i class="icon-edit" style="cursor:pointer" title="Edit Ledger" onclick="viewDetails(<?PHP echo $row['id'];?>)"></i>

   </td>
  </tr>
   <?PHP $count++; } ?>

评论。

4

1 回答 1

4

更新:

试试这个代码:

 $('.icon-remove').on('click', function () {
   // Get the position of the current data from the node
   var aPos = oTable.fnGetPosition( $(this).closest('tr').get(0) );
   // Delete the row
   oTable.fnDeleteRow(aPos);
 } );

笔记:

  1. API中没有fnGetSelected。它可能是 OP 具​​有的自定义功能,但不是在问题中产生的。
  2. fnGetPosition是接受td, th, 或tr元素
  3. .get(0)就是将元素从jQuery对象中分离出来
于 2012-11-24T09:11:26.373 回答