eliminar todas las tablas de datos usando jQuery

entonces, estoy usando datatables junto con jQuery, y estoy un poco perplejo sobre por qué esto no está funcionando. Mi HTML se ve así:

Partitions
Partition CPU % Search Count Person Count Disk Space

Tengo varias tablas, cada una de las cuales sigue un formato similar, y cada una de ellas usa la clase partitionDisplay (realmente solo una clase que utilizo para poder seleccionar todas las tablas más tarde usando jQuery).

Entonces, el problema surge cuando bash destruir las tablas de datos. Esto es lo que tengo:

 function DeletePartitionInformation(data) { jQuery(".partitionDisplay").each(function(){ jQuery(this).dataTable().fnDestroy(); }); jQuery("table tbody").each(function() { jQuery(this).html(""); }) } 

Este código parece funcionar correctamente para la primera tabla, pero arroja una excepción y no funciona en ninguna tabla posterior. El mensaje de error de javascript que obtengo es el siguiente:

Unkeught TypeError: no se puede leer la propiedad ‘asSorting’ de undefined

Una búsqueda rápida en Google sobre este error dice que generalmente surge al tener elementos nesteds en una etiqueta. Sin embargo, este no parece ser el problema. Publicaré el código para las otras tres tablas para demostrar esto:

 
SubPartitions
Partition SubPartition CPU % Search Count Person Count Disk Space Begin End
Partitions
Partition CPU % Search Count Person Count Disk Space
SubPartitions
Partition SubPartition CPU % Search Count Person Count Disk Space Begin End

Una nota final: en realidad puedo obtener el comportamiento que quiero si utilizo el siguiente código. Obviamente, yo preferiría no hacerlo, sin embargo, dado que realmente me gustaría revisar los elementos en lugar de codificar los identificadores de los elementos.

 function DeletePartitionInformation(data) { jQuery("#surnamePrimarySubpartitionTable").dataTable().fnDestroy(); jQuery("#surnamePrimaryPartitionTable").dataTable().fnDestroy(); jQuery("#givenNullSurnameSubpartitionTable").dataTable().fnDestroy(); jQuery("#givenNullSurnamePartitionTable").dataTable().fnDestroy(); jQuery("table tbody").each(function() { jQuery(this).html(""); }) } 

Unkeught TypeError: no se puede leer la propiedad ‘asSorting’ de undefined

Esto parece sugerir que puede estar intentando destruir dataTable que no fueron creadas.

Los fnTables estáticos deberían darle una Array de solo los elementos

con un dataTable :

 var tables = $.fn.dataTable.fnTables(true); $(tables).each(function () { $(this).dataTable().fnDestroy(); });