/ / Чи існує спосіб виявити, що таблиця на сторінці є об'єктом таблиці даних? - javascript, jquery, jquery-плагіни, таблиці даних

Чи є спосіб визначити, що таблиця на сторінці є об'єктом dataTable? - javascript, jquery, jquery-plugins, data tables

Я шукаю спосіб дізнатися, чи є таблиці на сторінці таблицею даних чи ні? Чи є простий спосіб її знайти? Або, якщо я можу отримати всі об'єкти таблиці даних.

Відповіді:

2 для відповіді № 1
if($("table").parents(".dataTable_wrapper").length>= 1) {
do something...
}

Це трохи злому, але немає ще рідного способу перевірити наявність екземпляра даних. Це те, про що я просто так дізнався вчора.


11 для відповіді № 2

У плагіні DataTables є статичний метод, тож ви можете перевірити як:

$("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 для відповіді № 3

Можна отримати всі таблиці на сторінці, які є таблицями даних, одним махом. Код для DataTables 1.10 буде таким:

$.fn.dataTable.tables()

Ось іще док для нього. Це поверне масив Елементи DOM. Якщо ви хочете отримати екземпляри API DataTable, які пов'язані з ними, ви можете зробити:

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

Зауважте, що хоча дзвоніть .DataTable() як вище може створити новий екземпляр API DataTable і, отже, ініціалізуйте вашу таблицю, якщо елементи DOM, для яких називається метод вже мати власні екземпляри (API вже створений та ініціалізований), дзвінок буде ні створювати нові екземпляри. Іншими словами, наведений вище код не буде ініціалізувати ваші таблиці заново.

The datatables Об'єктом тут є екземпляр API, який управляє ціла колекція таблиць. Виклик функцій API у цьому випадку контролюватиме всі таблиці одразу. Пристосовуючи приклад з документації, цей код:

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

змусить усі таблиці перейти на наступну сторінку (якщо вона існує).

У версіях до 1.10 еквівалентна функція була $.fn.dataTable.fnTables.

Згадав Рой Лінг $.fn.dataTable.fnIsDataTable які можна використовувати для тестування таблиць окремо. Звичайно, в 1.10 так і є досі можливо тестувати таблиці індивідуально, коли це потрібно, функція є $.fn.dataTable.isDataTable.


0 для відповіді № 4

Я знаю, що з моменту опублікування цього питання може пройти деякий час, але, оскільки я сам задавав те саме питання, я прийшов до цього рішення з посилання на DataTable сайт.

Ось як перевірити, чи #example є DataTable чи ні. Якщо ні, ініціалізуйте:

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

Сподіваюсь, це допомагає комусь!