webentwicklung-frage-antwort-db.com.de

DataTables: TypeError: i ist nicht definiert

Ich habe eine Tabelle wie die folgende  Table

die Tabelle als Rowspans, weil ich für einige Benutzer 2 Zeilen haben muss (wie Sie in Spalte 'D' sehen)

Ich versuche Datatables zu verwenden:

<table class="table table-bordered table-hover table-striped" id="myTable">
(...)
</table>

Und ich nenne das am Anfang des Codes:

 <script>
    $( document ).ready(function() {
         $('#myTable').DataTable();
    });
</script>

Aber ich habe diesen Fehler:

TypeError: i ist nicht definiert

Und die Tabelle ist nicht wie ein Datentyp!

Vielleicht funktioniert es nicht mit Rowspans? Irgendeine Idee?

11
Erbi Silva

FWIW Sie können diese Fehlermeldung auch erhalten, wenn Sie nicht in jeder Zeile die gleiche Anzahl von <td></td>-Elementen haben. Stellen Sie sicher, dass Sie keine Zeilen mit Navigationsschaltflächen oder -links oder ähnliches hinzufügen, die möglicherweise nicht auf die gleiche Weise wie die anderen Zeilen formatiert sind.

7
Dylan Smith

das jQuery DataTables-Plug-In unterstützt standardmäßig das Attribut ROWSPAN nicht. Es gibt jedoch ein RowsGroup plugin für jQuery DataTables, das Zellen in Gruppen zusammenfasst, um sie so aussehen zu lassen, als würde das ROWSPAN-Attribut verwendet.

Siehe dieses Beispiel für Code und Demonstration.

Siehe jQuery DataTables - ROWSPAN im Tabellenrumpf TBODY für weitere Details.

4
Gyrocode.com

Ich würde sagen, dass Ihre Tabelle keine Datentabelle ist, da Sie undefinierte Daten haben und auf das "Ich" der interne Iterator der DataTable-Schleife bezogen ist. Die Verwendung von Rowspans ist das Problem Für jedes Datenelement (in Ihrem Beispiel würde 250 eine ganze Zeile mit doppelten Werten für alle anderen Spalten außer D erfordern) - es ist durchaus möglich, css zu verwenden, um Werte auszublenden, die für denselben visuellen Effekt dupliziert werden. Dies würde eine datierbare Filterung ermöglichen Diese Zeilen funktionieren weiterhin (obwohl Sie möglicherweise einige Haken benötigen, um verborgene Daten anzuzeigen, wenn diese zusätzlichen Zeilen gefiltert werden).

2
A Macdonald

Für zukünftige referer.

Dies liegt daran, dass Sie Rowspan oder colspan verwenden, was nicht unterstützt werden kann. 

Wenn Sie Colspan verwenden möchten, können Sie es außerhalb von </tbody> verwenden.

Vielen Dank.

1
Nikunj Dhimar

Dieses Problem tritt auf, wenn Ihre Tabelle nicht gut geformt ist. Beispielsweise sollten Sie <table>.__ haben. <thead><th><tbody><tr><td>

Dann darf sich die ID der Tabelle nicht mit der ID anderer Elemente auf derselben Seite überschneiden. Andernfalls erhalten Sie Fehler wie i oder udefined oder c ist undefiniert.