我想添加一个额外的 <thead>
这将包含我在数据表中该列的过滤器。
我可以使用以下脚本来做到这一点。 (为此,我应该在 dom 中定义 thead)
var tableid = $('#dataTableBuilder');
num_columns = tableid.find('thead > tr:first > th').length;
tableid.find('thead > tr:first').before('<tr id="filter-row"></tr>');
var filterrow = tableid.find('#filter-row');
while (num_columns-- > 0) filterrow.append('<th></th>');
问题是我不想看 DOM 来找出要添加那么多列的列数
<th>
. (这样做的原因是我正在使用 Yajra Datatables HtmlBuilder 来生成我的表,但我不知道预先的列数,并且添加的表代码仅为 <table id='xxxxxx'></table>
)我希望这个问题被理解,我只需要知道如何使用数据表计算列数。
我试过
myDataTable.fnSettings().aoColumns.length
但它说“fnSettings 不是一个函数”它看起来像是在 1.10 中被贬低,有什么替代方法吗?
最佳答案
使用 1.10.x API 有多种方法可以获取列数。例子 :
var colCount = table.columns().header().length;
var colCount = table.row(0).data().length;
var colCount = table.columns()[0].length;
...
关于
myDataTable.fnSettings().aoColumns.length
我相信你在想table.init().columns
/table.init().aoColumns
等等但是
table.init()
只保存您实际传递给数据表的初始化选项。如果您有这样的 dataTables 初始化var table = $("#example").DataTable({
columnDefs : [
{ targets : [0], sortable : false }
]
})
然后
table.init().columnDefs
和 table.init().aoColumnDefs
将存在,但 table.init().columns
不会,因为您还没有通过 columns
结构到数据表。
关于datatables-1.10 - DataTables 1.10 列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34609173/