Хорошо, никто так и не смог ответить на ваш вопрос, и я тоже искал это тривиальное задание, и мне потребовалось больше времени, чем ожидалось, чтобы выяснить, как это сделать.
вот как, действительно легко, но не задокументировано должным образом.
/* Get the DataTables object again - this is not a recreation, just a get of the object*/
var oTable = $('#example').dataTable();
var bVis = oTable.fnSettings().aoColumns[iCol].bVisible;
oTable.fnSetColumnVis( iCol, bVis ? false : true );
по сути, функция fnSettings () также имеет свойство aoColumns, которое будет содержать все свойства столбца, установленные при инициализации.
если у вас возникли проблемы с получением правильного индекса из видимого столбца, вы можете попробовать использовать этот метод (хотя, похоже, он не работает только для ячеек тела заголовка th, поэтому вам придется выполнить некоторые вычисления, чтобы выяснить заголовок клетка).
$('.dataTable td').click( function () {
// Get the position of the current data from the node
var oTable = $(this).closest('.dataTable').dataTable();
var aPos = oTable.fnGetPosition( this );
console.log(aPos);
} );