Я получаю эту ошибку со следующим:
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
Строка выше, относящаяся к (анонимной функции) @ VM3156: 180:
TASKLISTGRID = $("#TASK_LIST_GRID").DataTable({
data : response,
columns : columns.AdoptionTaskInfo.columns,
paging: true
});
Так что я предполагаю, что здесь он терпит неудачу.
Элемент HTML ID существует:
<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>
Также существуют массивы объектов columns.AdoptionTaskInfo.columns и response. Не знаю, как отлаживать, что не так. Любые предложения будут полезны.
javascript
jquery
node.js
datatables
Новобранец
источник
источник
.style
в своем коде. Вы пытаетесь получить доступ к этому свойству неопределенной переменной. Оттуда можно отлаживать.Ответы:
Проблема в том, что количество тегов <th> должно соответствовать количеству столбцов в конфигурации (массив с ключом «columns»). Если тегов <th> меньше, чем указано в столбцах, вы получите это слегка зашифрованное сообщение об ошибке.
(правильный ответ уже присутствует в виде комментария, но я повторяю его как ответ, чтобы его было легче найти - я не видел комментариев)
источник
ВОЗМОЖНЫЕ ПРИЧИНЫ
th
элементов в верхнем или нижнем колонтитуле таблицы отличается от количества столбцов в теле таблицы или определяется с помощьюcolumns
параметра.th
элемента в заголовке таблицы.columnDefs.targets
опции указан неверный индекс столбца .РЕШЕНИЯ
th
элементов в верхнем или нижнем колонтитуле таблицы соответствует количеству столбцов, заданных вcolumns
параметре.colspan
атрибут в заголовке таблицы, убедитесь, что у вас есть как минимум две строки заголовка и один уникальныйth
элемент для каждого столбца. См. Сложный заголовок для получения дополнительной информации.columnDefs.targets
опцию, убедитесь, что индекс столбца, отсчитываемый от нуля, относится к существующим столбцам.ССЫЛКИ
См. JQuery DataTables: Common JavaScript console errors - TypeError: Cannot read property 'style of undefined for more information.
источник
Вы сказали, что любые предложения будут полезны, поэтому в настоящее время я решил мою проблему DataTables «не могу прочитать свойство 'style' of undefined», но моя проблема заключалась в использовании неправильных индексов в
columnDefs
разделе фазы инициации таблицы данных . У меня есть 9 столбцов, а индексы - 0, 1, 2, .., 8, но я использовал индексы для 9 и 10, поэтому после исправления неправильной проблемы с индексом ошибка исчезла. Надеюсь, это поможет.Короче говоря, вам нужно следить за количеством столбцов и индексами, если они везде согласованы.
Код ошибки:
Фиксированный код:
источник
У меня возникла эта проблема, когда я установил
colspan
заголовок таблицы. Итак, моя таблица была:Затем, как только я изменю его на:
Все работало нормально.
источник
Убедитесь, что в ваших входных данных
response[i]
иresponse[i][j]
нетundefined
/null
.Если да, замените их на "".
источник
Это также может произойти при рисовании новой (другой) таблицы. Я решил это, сначала удалив предыдущую таблицу:
$("#prod_tabel_ph").remove();
источник
Решение довольно простое.
Примечание : columns: columns.AdoptionTaskInfo.columns имеет по крайней мере столбец, не определенный в заголовке таблицы
источник
Как ни странно, я получал следующую ошибку из-за того, что у меня слишком много одной th / th пары, и все же Google направил меня сюда. Я оставлю это записанным, чтобы люди могли его найти.
источник
В моем случае я дважды обновлял данные на стороне сервера, и это вызывало эту ошибку. Надеюсь, это кому-то поможет.
источник