Datatable.net数据索引与数据不匹配

时间:2017-09-15 02:23:49

标签: javascript datatables

我正在尝试查找与列数据值匹配的行的索引。从找到的索引我想得到相应的TR元素。我正是这样做的:

// A table with many people [name, position, office, age, etc...]
var table = $('#example').DataTable();

// Finding the row index of the person having 46 year old
var pos = table.column(3).data().indexOf("46");

// Getting position 7 (Cara Stevens)
console.log(`pos : ${pos}`);

// Getting data of the row at index 7
var dt = table.row(pos).data();

// We are getting Rhona Davidson instead of Cara Stevens, what's that ?
// Even if I try to get the TR html element by calling table.row(pos).node(), 
// obviously this will not be the TR having (Cara Stevens) but the one 
// with (Rhona Davidson)
console.log(`dt : ${dt}`);

我是否遗漏了有关Datatable.net和内部索引行为的内容或者有一个bg?

以下是问题的完整工作示例,请阅读控制台结果: https://jsfiddle.net/fzvsvfs2/

致以最诚挚的问候,

1 个答案:

答案 0 :(得分:0)

要获得正确的行,您应该使用:

var dt = table.rows().data()[pos];

因为row(pos)正在从原始行模型中选择索引pos行,而不是显示顺序,所以您可以使用console.log(table.data())来查看。

获取tr,只需:

table.rows().nodes()[pos]