2015-02-26 6 views
3

У меня есть datatable и таблица имеет пример ID.Как я могу уничтожить datatable

Теперь мне нужно уничтожить DataTable и я пишу:

$('#example').dataTable().fnDestroy(); 

, но я получаю:

Uncaught TypeError: Cannot read property 'style' of undefined

также это я получаю в журнале консоли: enter image description here

Что здесь проблема ? Почему я не могу уничтожить данные? Как это решить?

+0

Вы, вероятно, хотите '$ ('# пример') DataTable() fnDestroy (..); - отметить капитал 'D'. Использование 'dataTable' (с' d') возвращает объект jQuery. –

+0

да, но теперь я получаю: Uncaught TypeError: undefined не является функцией –

+0

поэтому капитал «D» здесь не проблема –

ответ

12

Для последней версии DataTables использовать:

$('#example').DataTable().destroy(); 

Обратитесь к этому больше: https://datatables.net/reference/api/destroy%28%29

Для более старых версий использовать как заявлено Hobo Sapiens:

$('#example').DataTable().fnDestroy(); 
+0

Если вы получите ", но теперь я получаю: Uncaught TypeError : undefined не является функцией ", то вы можете импортировать jquery дважды. –

+0

Нет, оба '$ ('# example'). DataTable() .fnDestroy()' и '$ ('# example'). DataTable(). FnDestroy()' работает с 1.9.x – davidkonrad

+3

Я получаю ту же ошибку с .destroy(); : Uncaught TypeError: Не удается прочитать свойство 'style' undefined –

3

Вот что в конце концов работал для меня с v1.10.

// Define a variable for your dataTable object to use 
var reportListDataTable = null; 

// Then inside a function/method somewhere... 

// Destroy the dataTable and empty because the columns may change! 
if (reportListDataTable !== null) { 
    // for this version use fnDestroy() instead of destroy() 
    reportListDataTable.fnDestroy(); 
    reportListDataTable = null; 
    // empty in case the columns change 
    $('#reportListTableId').empty(); 
} 

// Build dataTable with ajax, columns, etc. 
reportListDataTable = $('#reportListTableId').dataTable({ 
    //... Your dataTables code here 
}); 
+1

Даже с v1.10 все равно зависит от того, используете ли вы dataTable() или DataTable(). Обратите внимание на «капитал D». – jjwdesign

0

то, что сработало для меня, уничтожает dataTable при нажатии кнопки вставки, а не на кнопке ввода данных. Таким образом, кнопка, которая уничтожает dataTable, не воссоздает таблицу. И еще одна функция, которая вызывается из другого нажатия кнопки, создает dataTable. код прост:

Кнопка, которая разрушает DataTable:

var otable = $('#claimRecordTable').dataTable(); 
if (otable != null) otable.fnDestroy(); 

кнопка, которая создана DataTable:

$('#claimRecordTable').dataTable(); 
Смежные вопросы