JQuery DataTables.Как получить отфильтрованные (видимые) строки - PullRequest
18 голосов
/ 25 июня 2011

У меня есть кнопка, которая применяет фильтр к jquery datatable

$("#buttonFilter").button().click(function() {
                if (lboxColor.val() != null) {
                    jqTable.fnFilter($("option:selected", lboxColor).text(), 1);
                }
            });

Это показывает, например, 47 строк из 60. Я пробовал .fnGetData () и fnGetNodes (), но показывает все строки, ноне фильтруетсяКак я могу получить 47 строк?

Ответы [ 5 ]

25 голосов
/ 16 сентября 2015

Я искал около часа, для тех, кто использует DataTables 1.10+, если вы хотите получить отфильтрованные (лучше термин: "искали") строки:

var table = $('.table').DataTable({...});

function selectOnlyFiltered(){
   var filteredRows = table.rows({filter: 'applied'});
}
18 голосов
/ 22 января 2013

Для таблиц данных 1.9 и более поздних версий это решение работает:

myDataTableHandle = $('#example1').dataTable(...);
...
...
var myFilteredRows = myDataTableHandle._('tr', {"filter":"applied"});

, и вам не нужно будет включать отдельный плагин API. :)

6 голосов
/ 15 апреля 2014

На всякий случай, если вам нужен набор узлов (элементов DOM), например, fngetNodes (), вы можете использовать «$» вместо «_», как это table.$('tr', {"filter":"applied"});

в «_»возвращает коллекцию TR (html элементов).

0 голосов
/ 03 сентября 2014

Для тех, кто заинтересован, это конкретный вариант использования.

/**
 * Select all the elements of the datatable which match the current user
 * search (or all if no search).
 */
function dtable_selectAll()
{
    idTable = 'myDataTable';
    var rows = $('#' + idTable).dataTable()
            .$('tr', {"filter":"applied"});
    var oTT = TableTools.fnGetInstance(idTable);
    $(rows).each(function (index, el){
        oTT.fnSelect(el);
    })
}

Надеюсь, это поможет.

0 голосов
/ 11 ноября 2011

Просто для полноты, и, как упомянул Юрий, есть "плагины", которые будут предоставлять отфильтрованные TR-узлы или данные .

. Чтобы использовать эти плагины,вам нужно будет вставить код из этих ссылок в файл скрипта.

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