2016-06-11 40 views
1

我是jquery datatable的新手。在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(); 
    } 
}); 
+0

你可以做一個演示? – guradio

+0

對不起,但我不能。 @guradio –

回答

1

沒有爲行沒有hide()功能。基本上是你正在嘗試做一個專門的過濾器,所以你可以創建一個custom filter來實現你想要的。這裏有一個可切換的濾波器,它隱藏或顯示<tr>的與status_id 9或13的一個例子:

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

+0

這是一個很好的答案。謝謝。我一定會嘗試它並將其標記爲正確的.. –

0

datatables docs說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()

+0

感謝您的答案,但它並沒有爲我工作。 –