【问题标题】:toggle row with specific attribute in jquery datatable on click单击时在jquery数据表中切换具有特定属性的行
【发布时间】:2016-06-11 08:41:59
【问题描述】:

我是 jquery 数据表的新手。

我想要实现的是,在单击按钮时切换(隐藏/显示)属性名为 status_id 的数据表行,其值为 9 到 13。

我只尝试过 9 号,但它不起作用。

var dTable = $('#tbl_taskList').DataTable();

$(document).on('click', '.hide-tasks', function (e) {

    e.preventDefault();

    var row = dTable.row($(this).attr('status_id'));
    if(row === '9') {
        dTable.row().hide();
    }
});

【问题讨论】:

  • 你能做一个演示吗?
  • 很抱歉,但我不能。 @guradio

标签: javascript php jquery datatable datatables


【解决方案1】:

行没有hide() 功能。基本上是你想要做一个专门的过滤器,所以你可以创建一个custom filter 来实现你想要的。这是一个可切换过滤器的示例,它使用 status_id 9 或 13 隐藏或显示 <tr>

$('#hide-tasks').on('click', function (e) {
  //is the checkbox checked?
  if ($(this).is(':checked')) {
    //add filter
    $.fn.dataTable.ext.search.push(function( settings, data, dataIndex ) {
      //always go through the API when working with dataTables!
      var status_id = parseInt(table.row(dataIndex).nodes().to$().attr('status_id'))
      return !~[9,13].indexOf(status_id)
   })
 } else {
   //reset filter
   $.fn.dataTable.ext.search.pop()
 }   
 //update table
 table.draw()
})  

演示 -> http://jsfiddle.net/k1cz6rma/

【讨论】:

    【解决方案2】:

    Datatables 文档说 table.row 没有隐藏功能,但 row().child() 可以。

    var row = dTable.row(':eq('+$(this).attr('status_id')+')');
    
    row.child().hide(); // hides
    
    row.child().show(); // shows
    

    查看此页面

    row().child().hide()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 2016-05-27
      相关资源
      最近更新 更多