How to get name of datatable column?

below code worked for me

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

also you can add a specific html class for only specific column names like having that class

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

You can retrieve the initialization options through table.settings().init() - and by that the columns definition this way :

var columns = table.settings().init().columns;

When clicking on a cell / <td> you can find the column index by (best practice in case of hidden columns) :

var colIndex = table.cell(this).index().column;

An example of a click handler that alerts the corresponding column.name when a cell is clicked

$("#example").on('click', 'td', function() {
    //get the initialization options
    var columns = table.settings().init().columns;
    //get the index of the clicked cell
    var colIndex = table.cell(this).index().column;
    alert('you clicked on the column with the name '+columns[colIndex].name);
})

Your every() example would be

var columns = table.settings().init().columns;
table.columns().every(function(index) { 
    console.log(columns[index].name);
})  

demo -> http://jsfiddle.net/6fstLmb6/