单击时在jquery datatable中切换具有特定属性的行

时间:2016-06-11 08:41:59

标签: javascript php jquery datatable datatables

我是jquery datatable的新手。

我想要实现的是,在点击按钮时切换(隐藏/显示)具有名为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();
    }
});

2 个答案:

答案 0 :(得分:1)

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

$('#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()
})  

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

答案 1 :(得分:0)

数据表文档说table.row没有隐藏fucntion但是row()。child()没有。

var row = dTable.row(':eq('+$(this).attr('status_id')+')');

row.child().hide(); // hides

row.child().show(); // shows

结帐页面

row().child().hide()