jquery DataTables. How to get filtered (visible) rows

Viewed 43074

I have a button that apply filter to jquery datatable

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

It shows me for example 47 rows from 60. I tried .fnGetData() and fnGetNodes() but it shows me all rows, but not filtered. How could I get 47 rows?

8 Answers

For those struggling to get data from only one column AND only from visible rows: you can actually combine the "selectors" like this

var total = api
      .column(2, { search: 'applied' }) // <-- only 3rd column && only visible after applied search
      .data()
      .reduce(function (a, b) {
        return floatVal(a) + floatVal(b)
      }, 0)

I also notices several sources stating { page: 'current' } would be the right selector for currently visible rows, but this one actually gives you the rows visible after a possible pagination.

like if work for you

var data = []
table.rows({"search":"applied"}).every(()=>data.push(this.data()))
console.log(data)
Related