我有一个带有可排序列的数据表。单击标题可对其进行排序。到现在为止还挺好。 但是,在排序之后,我想要迭代列中的单元格。所以我这样做:
datatable.column(".latest").nodes().each(function (node, index, dt) {
var the_cell = this.cell(index, '.sto_bid').node();
但是,这会在列排序之前拉回单元格。换句话说,index = 0正在拉回现在列中的最后一个单元格。排序时如何重置索引,因此cell(0,'。sto_bid')将返回表中显示的第一个单元格?
文档似乎暗示调用draw()可以满足我的需要 - 它会重置数据。当我第一次这样做时,它对我没有任何作用:
datatable.draw()
订购指数仍然倒退。
答案 0 :(得分:0)
这就是我的所作所为:
// My custom sort function on the raw data array
sortFilteredGridData();
// Remove all rows from the table
table.clear();
// Add the data back to the table
table.rows.add(filteredGridData);
// I have a fixed header
table.fixedHeader.adjust();
// Re-draw
table.draw();
答案 1 :(得分:0)
您需要将搜索到的标记应用于返回的数据:
contentTable.cells({search:'applied'}, ".latest").nodes();
这应该按照它们在页面上存在的顺序获取.latest列中单元格的所有DOM元素。抓取节点需要采用与代码相同的方法,所以我不知道如何将它完全应用到您的情况中,但这应该让您朝着正确的方向前进