编辑:这只发生在我使用sScrollX时。 - http://jsfiddle.net/4n3Hp/ - 不幸的是,这个特定用例需要它。
由于tabletools对我不起作用,由于它使用flash和我的情况的一些次优行为,我正在尝试编写excel导出。我已经提取了所有必要的单元格信息,但DataTables正在用标题做一些奇怪的事情。
假设一个listTable的div(这是通用的,但是作为一个例子)我试过了
$('#listTable').dataTable().fnSettings().nTable.getElementsByTagName('thead')
它获取了表头标题行,除了它已被更改。
<th class="sorting" role="columnheader" tabindex="0"
aria-controls="listTable" rowspan="1" colspan="1"
style="width: 130px; padding-top: 0px; padding-bottom: 0px;
border-top-width: 0px; border-bottom-width: 0px; height: 0px;"
aria-label="Email Recipients: activate to sort column ascending"></th>
除了原始标题文本已被删除外,哪个会没问题,这是我需要的。
查看DOM,它显示有两个实际的表,其中一个具有单元格数据,另一个用“datatables_scrollHeadInner”分类的div封装。 (如果我在页面上有多个表,那么在提供通用解决方案时会出现问题。)
虽然我认为我有一个hackaround解决方案(从aria-label拉出并用冒号分隔,从不在标题中使用冒号;或者做一些尴尬的jquery导航),我想知道我怎么能更多优雅地从dataTable中提取标题。
答案 0 :(得分:6)
尝试使用此标题行:
var nRow = $('#myDataTable thead tr')[0];
列标题名称将在nRow.cells [index] .innerText。
中请参阅此jsFiddle:http://jsfiddle.net/h3U7f/
编辑sScrollX
试试这个:
var columns = $('#myDataTable').dataTable().dataTableSettings[0].aoColumns;
$.each(columns, function(i,v) { alert(v.sTitle); });
请参阅: http://jsfiddle.net/UCYCt/
BQB