我正在尝试查找与列数据值匹配的行的索引。从找到的索引我想得到相应的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/
致以最诚挚的问候,
答案 0 :(得分:0)
要获得正确的行,您应该使用:
var dt = table.rows().data()[pos];
因为row(pos)
正在从原始行模型中选择索引pos行,而不是显示顺序,所以您可以使用console.log(table.data())
来查看。
获取tr,只需:
table.rows().nodes()[pos]