然后使用cell()函数

时间:2016-08-08 18:46:18

标签: jquery datatables

我有一个带有可排序列的数据表。单击标题可对其进行排序。到现在为止还挺好。 但是,在排序之后,我想要迭代列中的单元格。所以我这样做:

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()

订购指数仍然倒退。

2 个答案:

答案 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元素。抓取节点需要采用与代码相同的方法,所以我不知道如何将它完全应用到您的情况中,但这应该让您朝着正确的方向前进