2016-12-20 4 views
0

Ich habe die folgende Frage: Ich habe eine DataTable (jQuery), die ich nach der ersten Spalte absteigend sortiert. Was ich versuche zu tun, ist die letzte Zeile zu entfernen, wenn die Anzahl (Bsp. 10) erreicht wurde, so dass die Tabelle niemals 10 Zeilen überschreiten wird. Ich habe ein paar Wege versucht, alle ohne Erfolg. Jede Hilfe wäre willkommen.DataTable (jQuery) letzte Kind entfernen

UPDATE: Aus irgendeinem Grund entfernt es nur die erste Zeile.

// This is where I assign the DataTable to a variable. 
    var unprintedTable = $('#unprinted-table').DataTable({ 
      "order": [ 
       [1, "desc"] 
      ] 
    }); 

    var unprintedLogLength = 5; 
    var unprintedLogCount = 0; // Incremented when a new row is added. 

    if (unprintedLogCount > unprintedLogLength) { 
     unprintedTable.row($(this).parent('tr:last-child')[0]).remove(); 
    } 
+1

Versuchen Was der aktuelle Kontext ist? Was ist das? – Curt

+0

'$ (this) .parent ('tr: last-child') [0]' Hier ist dein Problem. das = jede Zelle? tr => letzte Zelle jeder Zeile nehmen => [0] nur den ersten gefunden in dieser Auswahl? = letzte Zelle der ersten Zeile –

+3

Sie wissen, DataTable hat eine Option, um die Anzahl der Datensätze pro Seite zu definieren, richtig? https://datatables.net/reference/option/pageLength – rabelloo

Antwort

1

Dieses One

<button onclick="RemoveLastRow()">Remove Last Row</button> 
    <table id="MyTable" class="table table-bordered table-striped" width="100%" cellspacing="0"> 
     <thead> 
      <tr> 
       <th>Column 1</th> 
       <th>Column 2</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr> 
       <td><button class="Mybtn">Click me</button></td> 
       <td>Hello</td> 
      </tr> 
     </tbody> 
    </table> 

    <script> 
     var Dtable; 
     $(document).ready(function() { 
      Dtable = $("#MyTable").DataTable(); 
     }); 


     function RemoveLastRow() { 
      Dtable.row(Dtable.data().length).remove().draw(false);   
     ); 
    </script>