编辑:这只发生在我使用 sScrollX 时。-- http://jsfiddle.net/4n3Hp/ -- 不幸的是,这个特殊用例需要它。
由于 tabletools 对我不起作用,由于它使用闪存和一些不适合我的情况的行为,我正在尝试编写一个 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 导航),但我想知道如何更优雅地提取数据表中的标头。