我需要在Datatables表中找到用户当前可见的行。
通过它,我不是指根据当前过滤器值可见的行。这很容易:
table.$('tr', {'filter':'applied'});
但无论它们是否在当前所选页面上可见,它都会返回行。如果表有100条记录,则过滤器传递20,每页行数设置为10,我需要得到那10条。
这应该很简单,但我找不到解决方案。
答案 0 :(得分:1)
试一试。
table.$('tbody tr:visible').length;
答案 1 :(得分:0)
这是我根据三个指定的数字cellnumber
,start
和end
来获取每行的指定列中的值,后两者其中可以与页码一起使用(即第2页,每页有10个项目,因此var start = pagenumber * numberofpageitems
和var 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/