Есть ли способ найти, что таблица на странице является объектом dataTable? - PullRequest
6 голосов
/ 20 января 2012

Я ищу способ узнать, являются ли таблицы на странице dataTable или нет?Есть ли простой способ найти его?Или может быть, если я могу получить все объекты dataTable.

Ответы [ 4 ]

11 голосов
/ 16 ноября 2012

В плагине 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
    }
});
3 голосов
/ 22 октября 2014

Можно получить все таблицы на странице, которые являются DataTables одним махом.Код для DataTables 1.10 будет:

$.fn.dataTable.tables()

Вот для него документ .Это вернет массив элементов DOM .Если вы хотите получить экземпляры DataTable API, связанные с ними, вы можете сделать следующее:

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

Обратите внимание, что хотя вызов .DataTable(), как указано выше, может создать новый экземпляр API DataTableи, следовательно, инициализировать вашу таблицу, если у элемента (ов) DOM, для которого метод вызывается уже , есть свои собственные экземпляры (API уже создан и инициализирован), вызов не создавать новые экземпляры.Другими словами, приведенный выше код не будет инициализировать ваши таблицы заново.

Объект datatables здесь представляет собой экземпляр API, который контролирует всю коллекцию таблиц.Вызов функций API в этом экземпляре будет контролировать все таблицы одновременно.Адаптируя пример из документации, этот код:

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

заставит все таблицы перейти на следующую страницу (если она существует).

В версиях до 1.10 эквивалентная функциябыло $.fn.dataTable.fnTables.

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

2 голосов
/ 20 января 2012
if($('table').parents('.dataTable_wrapper').length>= 1) {
 do something...
}

Это что-то вроде взлома, но пока нет собственного способа проверить экземпляр с данными.Это то, чему я так случайно научился вчера.

0 голосов
/ 26 января 2017

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

Вот как проверить, является ли #example DataTable или нет. Если нет, инициализируйте:

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

Надеюсь, это кому-нибудь поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...