以下函数适用于我的数据表当前页面上可见的行。如何让它在目前由分页隐藏的行上工作?
var table = $('.datatable').dataTable();
var row = table.fnGetPosition($('#'+data.id).closest('tr')[0]);
var value = table.fnGetData(table.fnGetPosition($('#'+data.id).closest('tr')[0]),11);
if (value == '') {
value = cid;
} else {
value = value+','+cid;
}
table.fnUpdate(value, row, 11);
答案 0 :(得分:2)
你可以使用fnGetNodes()实现这一点,这里是对文档的引用https://datatables.net/api
这是ya http://jsfiddle.net/mxfvLjnb/
的小提琴示例我把这里的代码放在这里只是为了更好的参考
var oTable = $('#example').dataTable({"sPaginationType": "full_numbers"});
var rows = oTable.fnGetNodes();
for(var i=0;i<rows.length;i++)
{
oTable.fnUpdate('X', rows[i], 4);
}
希望它可以帮到你
答案 1 :(得分:2)
由于DataTables 1.10+在API着陆页本身上可能不支持fnGetNodes()
mentioned,现在您可以使用rows().nodes()
要更新特定行,您可以使用row-selector
然后
要更新该特定行的特定单元格,您可以使用cell().data()
汇总上述修改后,您示例的代码将更改为以下内容:
//Notice the 'd' replaced by 'D' in dataTable() for Datatables v1.10+
var table = $('#example').DataTable();
var row = table.row('#' + data.id).node();
var value = table.cell(row, 11).data();
if (value == '') {
value = cid;
}
else {
value += ',' + cid;
}
table.cell(row, 11).data(value).draw();