Ich erhalte diesen Fehler mit folgendem:
jquery.dataTables.js:4089 Uncaught TypeError: Cannot read property 'style' of undefined(…)
_fnCalculateColumnWidths @ jquery.dataTables.js:4089
_fnInitialise @ jquery.dataTables.js:3216
(anonymous function) @ jquery.dataTables.js:6457
each @ jquery-2.0.2.min.js:4
each @ jquery-2.0.2.min.js:4
DataTable @ jquery.dataTables.js:5993
$.fn.DataTable @ jquery.dataTables.js:14595
(anonymous function) @ VM3329:1
(anonymous function) @ VM3156:180
l @ jquery-2.0.2.min.js:4
fireWith @ jquery-2.0.2.min.js:4
k @ jquery-2.0.2.min.js:6
(anonymous function) @ jquery-2.0.2.min.js:6
Die obige Zeile, die sich auf (anonyme Funktion) @ VM3156: 180 bezieht, lautet:
TASKLISTGRID = $("#TASK_LIST_GRID").DataTable({
data : response,
columns : columns.AdoptionTaskInfo.columns,
paging: true
});
Ich vermute also, dass dies hier fehlschlägt.
Das HTML-ID-Element ist vorhanden:
<table id="TASK_LIST_GRID" class="table table-striped table-bordered table-hover dataTable no-footer" width="100%" role="grid" aria-describedby="TASK_LIST_GRID_info">
<thead>
<tr role="row">
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Solution</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Status</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Category</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Type</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Due Date</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Create Date</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Owner</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Comments</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Mnemonic</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Domain</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Approve</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Dismiss</th>
</tr>
</thead>
<tbody></tbody>
</table>
Außerdem sind die Arrays columns.AdoptionTaskInfo.columns & response object vorhanden. Ich bin mir nicht sicher, wie ich das Fehler beheben soll. Vorschläge sind hilfreich.
javascript
jquery
node.js
datatables
Anfänger
quelle
quelle
.style
in Ihrem Code nach. Sie versuchen, auf diese Eigenschaft einer undefinierten Variablen zuzugreifen. Sie können von dort aus debuggen.Antworten:
Das Problem ist, dass die Anzahl der <th> -Tags mit der Anzahl der Spalten in der Konfiguration übereinstimmen muss (das Array mit dem Schlüssel "Spalten"). Wenn weniger <th> -Tags als die angegebenen Spalten vorhanden sind, wird diese leicht kryptische Fehlermeldung angezeigt.
(Die richtige Antwort ist bereits als Kommentar vorhanden, aber ich wiederhole sie als Antwort, damit sie leichter zu finden ist. Ich habe die Kommentare nicht gesehen.)
quelle
MÖGLICHE URSACHEN
th
Elemente in der Kopf- oder Fußzeile der Tabelle unterscheidet sich von der Anzahl der Spalten im Tabellenkörper oder wird mit dercolumns
Option definiert .th
Element in der Tabellenüberschrift verwendet.columnDefs.targets
Option angegeben.LÖSUNGEN
th
Elemente in der Kopf- oder Fußzeile der Tabelle mit der Anzahl der in dercolumns
Option definierten Spalten übereinstimmt .colspan
Attribut im Tabellenkopf verwenden, stellen Sie sicher, dass Sie mindestens zwei Kopfzeilen und ein eindeutigesth
Element für jede Spalte haben. Weitere Informationen finden Sie unter Komplexer Header .columnDefs.targets
Option verwenden, stellen Sie sicher, dass der auf Null basierende Spaltenindex auf vorhandene Spalten verweist.LINKS
Weitere Informationen finden Sie unter jQuery DataTables: Häufige JavaScript-Konsolenfehler - TypeError: Die Eigenschaft 'style' von undefined kann nicht gelesen werden .
quelle
Sie sagten, dass alle Vorschläge hilfreich sein würden, daher habe ich derzeit mein DataTables-Problem "Eigenschaftsstil kann nicht definiert werden" gelöst, aber mein Problem bestand im Grunde darin, im
columnDefs
Abschnitt zur Initiierungsphase der Datentabelle falsche Indizes zu verwenden . Ich habe 9 Spalten und die Indizes sind 0, 1, 2, .., 8, aber ich habe Indizes für 9 und 10 verwendet, sodass der Fehler nach Behebung des falschen Indexproblems verschwunden ist. Ich hoffe das hilft.Kurz gesagt, Sie müssen die Anzahl Ihrer Spalten und Indizes beobachten, wenn sie überall konsistent sind.
Buggy Code:
Fester Code:
quelle
Ich hatte dieses Problem, als ich den
colspan
Tabellenkopf einstellte . Mein Tisch war also:Dann ändere ich es einmal in:
Alles hat gut funktioniert.
quelle
Stellen Sie sicher, dass in Ihren Eingabedaten
response[i]
undresponse[i][j]
nichtundefined
/ sindnull
.Wenn ja, ersetzen Sie sie durch "".
quelle
Dies kann auch beim Zeichnen einer neuen (anderen) Tabelle passieren. Ich habe dies gelöst, indem ich zuerst die vorherige Tabelle entfernt habe:
$("#prod_tabel_ph").remove();
quelle
Die Lösung ist ziemlich einfach.
Hinweis : column: columns.AdoptionTaskInfo.columns enthält mindestens eine Spalte, die im Tabellenkopf nicht definiert ist
quelle
Lustigerweise bekam ich den folgenden Fehler, weil ein drittes Paar zu viel war, und Google hat mich trotzdem hierher geleitet. Ich werde es aufschreiben lassen, damit die Leute es finden können.
quelle
In meinem Fall habe ich die serverseitige Datentabelle zweimal aktualisiert und es wird mir dieser Fehler angezeigt. Hoffe es hilft jemandem.
quelle