我尝试过以下操作,但无法找到匹配项。我做错了什么?
var table = $('#mytable').DataTable();
//hide the row where text in column 1 equals 202733001010
var index = table.row().eq( 0 ).filter( function (rowIdx) {
return table.cell( rowIdx, 0 ).data() === '202733001010' ? true : false;
} );
我得到的是一个复杂的空数组,似乎没有任何值。我的最终目的是删除列单元格(在本例中为0)等于某个值的行,但我想我可能正在使用不正确的方法。非常感谢你的建议。数据表文档:https://datatables.net/reference/type/row-selector
答案 0 :(得分:2)
如果您的目标是实际删除行(过滤器和搜索只是隐藏/显示匹配数据),下面的逻辑可以相当直接地执行。我使用一个文本框输入一个值,以便从第一列中获取。如果找到,我将其删除。
在此处查看工作http://live.datatables.net/natejiju/1/edit
$(document).ready( function () {
var table = $('#example').DataTable();
$("#btnGo").on("click", function(){
var s = $("#txtSearch").val();
table.rows().nodes().each(function(a,b) {
if($(a).children().eq(0).text() == s){
table.rows(a).remove();
}
} );
table.rows().invalidate();
table.draw();
});
});