2012-01-19 32 views

Trả lời

2
if($('table').parents('.dataTable_wrapper').length>= 1) { 
do something... 
} 

Đó là một chút hack nhưng chưa có cách nào để kiểm tra bản sao dữ liệu. Đây là điều mà tôi vừa mới học được ngày hôm qua.

+0

Việc hack đó sẽ hoạt động nhưng tôi đang tìm kiếm một giải pháp mạnh mẽ hơn. – emphaticsunshine

+0

Giải pháp đó là từ chuỗi này trên diễn đàn datatabes, http: // datatables.net/forums/discussion/7748/check-if-dom-table-là-datatable-instance/p1, câu trả lời đến từ người tạo ra datatables, vì vậy rất tiếc tôi không nghĩ có nhiều cách khác để hoàn thành . –

+0

Tôi thực sự đang tìm đối tượng dataTable để tôi có thể gọi một số chức năng trên đó. – emphaticsunshine

11

Có một phương pháp tĩnh trong các plugin DataTables, vì vậy bạn có thể xác minh như:

$('table').each(function() { 
    // this method accepts the DOM node (table element) as parameter 
    if ($.fn.dataTable.fnIsDataTable(this)) { 
     // do your thing to the table 
    } 
}); 
2

Có thể nhận được tất cả các bảng trên trang đó là DataTables trong một ngã swoop với. Mã cho DataTables 1.10 sẽ là:

$.fn.dataTable.tables() 

Đây là doc cho nó. Điều này sẽ trả lại một mảng gồm các phần tử DOM. Nếu bạn muốn nhận được các trường hợp API DataTable có liên quan đến họ, bạn có thể làm:

var tables = $.fn.dataTable.tables(); 
var datatables = $(tables).DataTable(); 

Lưu ý rằng mặc dù gọi .DataTable() như trên có thể tạo một trường hợp API DataTable mới và hậu quả là khởi tạo bảng của bạn, nếu (Các) thành phần DOM mà phương thức được gọi là đã có các phiên bản riêng của chúng (API đã được tạo và khởi tạo), cuộc gọi sẽ không tạo các phiên bản mới. Nói cách khác, đoạn mã trên sẽ không khởi tạo lại bảng của bạn.

Đối tượng datatables ở đây là phiên bản API kiểm soát toàn bộ bộ sưu tập toàn bộ bộ sưu tập. Việc gọi các hàm API trên cá thể này sẽ kiểm soát tất cả các bảng cùng một lúc. Điều chỉnh ví dụ từ tài liệu, mã này:

datatables.page('next').draw(false); 

sẽ làm cho tất cả các bảng chuyển sang trang tiếp theo (nếu có).

Trong các phiên bản trước 1.10, hàm tương đương là $.fn.dataTable.fnTables.

Roy Ling đã đề cập $.fn.dataTable.fnIsDataTable có thể được sử dụng để kiểm tra các bảng riêng lẻ. Tất nhiên, trong 1,10 nó là vẫn có thể kiểm tra các bảng riêng lẻ khi cần thiết, chức năng là $.fn.dataTable.isDataTable.

0

Tôi biết có thể đã một lúc kể từ khi câu hỏi này được đăng, nhưng khi tôi tự hỏi cùng một câu hỏi, tôi đã đi đến giải pháp này từ tham chiếu DataTable site.

Dưới đây là cách kiểm tra xem #example có phải là một DataTable hay không. Nếu không, khởi tạo:

if (! $.fn.DataTable.isDataTable('#example')) { 
    $('#example').dataTable(); 
} 

Hy vọng điều này sẽ giúp ai đó!

Các vấn đề liên quan