当前页面上的行?

时间:2014-09-02 23:11:48

标签: javascript jquery datatables

我需要在Datatables表中找到用户当前可见的行。

通过它,我不是指根据当前过滤器值可见的行。这很容易:

table.$('tr', {'filter':'applied'});

但无论它们是否在当前所选页面上可见,它都会返回行。如果表有100条记录,则过滤器传递20,每页行数设置为10,我需要得到那10条。

这应该很简单,但我找不到解决方案。

2 个答案:

答案 0 :(得分:1)

试一试。

table.$('tbody tr:visible').length;

答案 1 :(得分:0)

这是我根据三个指定的数字cellnumberstartend来获取每行的指定列中的值,后两者其中可以与页码一起使用(即第2页,每页有10个项目,因此var start = pagenumber * numberofpageitemsvar end = (pagenumber * numberofpageitems) + numberofpageitems会导致20的开头和30的结尾。

var start = 5
var end = 9
var cellnumber = 1
var tablearray = $('#table tr').slice(eval(start-1),eval(end));
jQuery.each(tablearray, function( index, value ) {
alert("Row " + eval(index + start) + ", Cell " + cellnumber + ": " + value.cells[eval(cellnumber-1)].innerHTML);
});

如果您想获取所有object HTMLTableRowElement个对象,只需将.cells[0].innerHTML从警报结束处剔除即可:

var start = 5
var end = 9
var cellnumber = 1
var tablearray = $('#table tr').slice(eval(start-1),eval(end));
jQuery.each(tablearray, function( index, value ) {
alert("Row " + eval(index + start) + ", Cell " + cellnumber + ": " + value);
});

然后,您可以将警报更改为变量或其他内容,以满足您的特定需求。 这个代码的JSFiddle示例在这里:http://jsfiddle.net/o6j21gae/