3

DataTable Image -> When i am trying to get header name like this.. then i got only first column name which is NAME... But i need to get all headers name. How to get all Header Name ?

this.api().columns().every( function ($i) {
   var column = this;
   var order = this.order();
   var title = this.column(order[0][$i]).header();
   var tt = $(title).html();
   console.log(tt);
})
davidkonrad
  • 83,997
  • 17
  • 205
  • 265

4 Answers4

7

Seems a little bit overcomplicated :

this.api().columns().every(function() {
  console.log( this.header().textContent )
})

will do the "trick".

davidkonrad
  • 83,997
  • 17
  • 205
  • 265
1

This worked out for me:

table.columns().header().map(d => d.textContent).toArray()
Anton vBR
  • 18,287
  • 5
  • 40
  • 46
0
   Alert the name of the column for a cell that was clicked on:



var table = $('#example').DataTable();
    $('#example tbody').on( 'click', 'td', function () {
        var idx = table.cell( this ).index().column;
        var title = table.column( idx ).header();
        alert( 'Column title clicked on: '+$(title).html() );
    } );
Manish Singh
  • 934
  • 1
  • 12
  • 27
0
var dataTableHeaderElements = $('#tableId').DataTable().columns().header();
var headers = [];
for (var i = 0; i< dataTableHeaderElements.length; i++) {
    headers.push($(dataTableHeaderElements[i]).text())    
}
  • 2
    Your answer could be improved by adding more information on what the code does and how it helps the OP. – Tyler2P Aug 02 '22 at 09:53