2

datatableプラグインを使用したテーブルがあります。私はこれを使用して動的に行を削除しようとしています:

$(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が定義されていません。使用してみました(ここから:jQuery Data Tablesプラグインがテーブル行を削除していません

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

これはもちろん行を削除しますが、17エントリのうち1から10を表示するようにフッターのテキストをリセットしません。この方法を削除することは、これに対する最善の解決策ではありません。

私の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. fnGetSelectedAPIにはありません。OPが持つカスタム関数である可能性がありますが、質問では作成されません。
  2. fnGetPositiontd、、、thまたはtr要素を受け入れます
  3. .get(0)jQueryオブジェクトから要素を分割することです
于 2012-11-24T09:11:26.373 に答える