数据表:如何在表行中搜索字符串并隐藏行

时间:2017-03-14 21:18:39

标签: javascript jquery datatables

行内容示例:(此内容从json数组txt文件加载)

<div class='debug'><a href='/DH033368-4041-SR-0910-00005-006-0-CPC-20131105-1652/debug/DH033368-4041-SR-0910-000-Stage 1B Client Review-filteredCommentsXFDF.xml' target='_blank'>[webdav]</a> : /Company Home/filteredCommentsXFDF.xml</div>

我需要在DataTable行中找到调试类,或者在“href”属性中搜索'/ debug /',如果找到则隐藏该行。

Javascript不是我强大的套件。任何帮助表示赞赏。

到目前为止我所拥有的:

        $("#hide").click(function() {
            console.log('HIDE');
            $.fn.dataTable.ext.search.push(
              function(settings, data, dataIndex) {
                  return        $(table.row(dataIndex).node()).data().search("/debug/");
                }
            );
            table.draw();
        });    
        $("#reset").click(function() {
            console.log('RESET');
            $.fn.dataTable.ext.search.pop();
            table.draw();
        });

由于

1 个答案:

答案 0 :(得分:1)

使用to$()将行节点转换为jQuery实例。这更容易使用。然后只需测试<div><a> href以获得所需的匹配项:

$('#hide').click(function() {
  $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) {
    var $row = table.row(dataIndex).nodes().to$();
    return $row.find('div').hasClass('debug') || 
           $row.find('a').attr('href').indexOf('/debug/')>-1
  })  
  table.draw()
})

演示 - &gt;的 http://jsfiddle.net/3co6Lvkx/