无法在DataTables中按ID获取元素

时间:2016-05-31 07:54:34

标签: javascript jquery datatable

我正在尝试在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);

我无法理解我提到的两种情况都发生了什么。希望得到一些帮助。谢谢:))

编辑 - 使用示例添加图像

image with html

id = 140876的那个是数据表的最后一行。如果我向上滚动到数据表的第一个元素并尝试document.getElementById(“140876”)它会给我null。但是如果我滚动到底部,我就会得到价值。每隔一行也是如此。当我向上滚动时,向下的行返回null。

P.S。我现在必须删除第一张图片,我只允许添加1个链接。

2 个答案:

答案 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());
});