我正在尝试在DataTable中滚动到具有特定ID的行。以下是它的代码。
function scroll_row(int_id) {
var obj_element = document.getElementById(int_id);
if(obj_element != null) {
var int_scroll_pos = obj_element.offsetTop;
$('#myTable').parent().scrollTop(int_scroll_pos-10);
}
}
但问题是obj_element
在通过id获取它时给我null。
例如,如果我的数据表中有50行,并且我尝试给出第40个元素的id,而滚动位于顶部则返回null。
但是当我向下滚动到那个元素附近时。它会返回getElementById的值。
我不知道这里有什么问题。有人知道吗?
我也尝试过这样做https://datatables.net/forums/discussion/33/using-fngetposition-to-find-a-tr-by-id
$("#myTable").fnGetPosition(document.getElementById("262617"))
但在这种情况下,它也表示fnGetPosition不是函数。
这就是我的数据表
的方式tableSettings = {
...
}
var myTable = $('#myTable').DataTable(tableSettings);
我无法理解我提到的两种情况都发生了什么。希望得到一些帮助。谢谢:))
编辑 - 使用示例添加图像
id = 140876的那个是数据表的最后一行。如果我向上滚动到数据表的第一个元素并尝试document.getElementById(“140876”)它会给我null。但是如果我滚动到底部,我就会得到价值。每隔一行也是如此。当我向上滚动时,向下的行返回null。
P.S。我现在必须删除第一张图片,我只允许添加1个链接。
答案 0 :(得分:0)
要使用fnGetPosition
,您应该像这样使用它:
var table = $('#myTable').dataTable(); // with a lower 'd'
var row_index = table.fnGetPosition(this)[0];
以下是一个工作示例:http://live.datatables.net/xoqidaqi/1/
这是此处发现的错误示例的更正版本:https://datatables.net/forums/discussion/21582/fngetposition-undefined
答案 1 :(得分:0)
您将获得表的第一列/所有列的值。
在表格的主体标签中的tr
上分配tr
类。
该列将根据第一列的eq(0)
中的数字或第二列的eq(1)
中的数字进行更改,依此类推。
var table=$('#ID_OF_THE_TABLE').DataTable();
table.$('.bodytr').each(function()
{
console.log((this).find("td").eq(0).html());
});