2017-04-06 2 views
1

ich einen Scheck verweisen, wenn ein divWie zu einem vorhandenen Datatable

if ($.fn.DataTable.isDataTable($("#Table"))) { 
      $("#Table").DataTable().clear(); 
      $("#Table").DataTable().rows.add(data).draw(); 
     } 

Datatable ist Wenn es wahr ist, wie kann ich es als ein Objekt verweisen, so dass ich nicht brauche jQuery-Selektor zu verwenden nicht mehr.

Verwendung von

var Table=$("#Table").DataTable(); 

würde stattdessen eine neue Datentabelle erstellen, auch wenn das alte es bereits

+1

Sie müßten etwas wie 'var Table = $ (" # Table "). DataTable();' Wenn Sie die DataTable zum ersten Mal erstellen, können Sie später jederzeit mit dieser Variablen darauf verweisen. – ADyson

+0

Gibt es keinen anderen Weg? Zum Beispiel in einer anderen Funktion oder Web-Worker Callback, dass ich die Tabelle brauche? –

+0

Es gibt dies, wie in der Antwort unten: https://datatables.net/reference/api/%24.fn.dataTable.tables(). Sie erhalten alle Tabellen auf der Seite, als Array oder API-Instanz, mit der Sie auf alle zugreifen können. Wenn Sie jedoch mehrere Tabellen haben, müssen Sie immer noch wissen, auf welche Sie zielen möchten. – ADyson

Antwort

1

bei $.fn.dataTable.tables() Werfen Sie einen Blick. Hier ist ein Beispiel der Instanz (API) eine Tabelle auf der Seite abrufen und löscht es:

setTimeout(function() { 
    var table = $.fn.dataTable.tables({ api: true }); 
    table.clear().draw(); 
}, 1000) 

http://jsfiddle.net/fp6ev0vc/

+0

Es könnte ein wenig off topic sein, aber Ihrer Meinung nach, glauben Sie, manipulieren Tabelle über diesen Selektor wäre schneller als mit jquery Selektor? –

+0

@LoredraL, Wenn du damit 'this' meinst, und es ist' this' in einer dataTables-Methode selbst, würde ich ja sagen. Dann haben Sie bereits die API zur Hand. Es ist immer schneller, die API-Instanz zu speichern. Aber habe wirklich nie so viel darüber nachgedacht. API-Instanzen sind soweit ich weiß * immer * mit 'new _Api()' konstruiert, selbst wenn die Tabelle bereits konstruiert ist (also wäre es dasselbe, wenn man durch einen Selektor geht, nur einen Schritt mehr, indem man einen Selektor benutzt) – davidkonrad