在 jQuery DataTable 中查找数组索引的行索引
Find row index for array index in jQuery DataTable
我正在使用 jQuery DataTables 来显示分页 table。我现在想跳转到包含特定行的页面(使用当前 filter/sort 设置)。如果我知道行的索引,我可以很容易地用 tbl.fnPageChange( Math.floor(rowi / tbl.fnSettings()._iDisplayLength) );
.
之类的东西来做到这一点
但是,我只知道 数据对象 在数据数组中的索引(由 tbl.fnGetData()
返回)。
有没有简单的方法可以根据这个数据索引得到行索引?与 fnGetPosition()
几乎相反?
更新:我根据循环遍历 aiDisplay 数组一起破解了一些东西:
function find_display_index(dataTable, data_index) {
var oSettings = dataTable.fnSettings();
var row_index = -1;
for(var j = 0; j < oSettings.aiDisplay.length; j++) {
if(oSettings.aiDisplay[j] == data_index) {
row_index = j;
break;
}
}
return row_index;
}
不确定这是否是最好的(甚至是完全正确的)方法,但它似乎有效!
我正在使用 jQuery DataTables 来显示分页 table。我现在想跳转到包含特定行的页面(使用当前 filter/sort 设置)。如果我知道行的索引,我可以很容易地用 tbl.fnPageChange( Math.floor(rowi / tbl.fnSettings()._iDisplayLength) );
.
但是,我只知道 数据对象 在数据数组中的索引(由 tbl.fnGetData()
返回)。
有没有简单的方法可以根据这个数据索引得到行索引?与 fnGetPosition()
几乎相反?
更新:我根据循环遍历 aiDisplay 数组一起破解了一些东西:
function find_display_index(dataTable, data_index) {
var oSettings = dataTable.fnSettings();
var row_index = -1;
for(var j = 0; j < oSettings.aiDisplay.length; j++) {
if(oSettings.aiDisplay[j] == data_index) {
row_index = j;
break;
}
}
return row_index;
}
不确定这是否是最好的(甚至是完全正确的)方法,但它似乎有效!