我尝试同时构建一个既是JQuery treeTable又是JQuery数据表的表。 请注意,我的问题不是关于如何使用它,我可以查看没有问题,如果我填写“表”。
但是当我向我的treetable建筑代码发送一个空数组时,我收到了错误。
以下是问题专栏:
$('#table tbody tr').each(function(){
console.log(this);
if(mytable.fnGetData(mytable.fnGetPosition(this))[4]){
console.log('in set child before');
$(this).addClass('child-of-'+mytable.fnGetData(mytable.fnGetPosition(this))[4]);
console.log('in set child after');
}
$(this).attr('id', mytable.fnGetData(mytable.fnGetPosition(this))[0]);
});
当我不填充表格时,尽管我的愿望,这个过程会进入上面的循环,并且
console.log(this)
打印出来:
<tr class="odd"><td valign="top" colspan="4" class="dataTables_empty">No data available in table</td></tr>
因此它会产生错误,因为行数据不是预期的。
我想问一下,如果它是一个填充的“数据”或一个空的警告行,最优雅的控制方法是什么?检查“dataTables_empty”的“类”是否合适?
如果表格为空,还有其他方法可以不通过上面的循环。
答案 0 :(得分:6)
您还可以使用page.info()检查dataTable是否为空,如此stackoverflow post中所述。 例如
//gives the total number of filtered records
var totalDisplayRecord = $(".dTable").DataTable().page.info().recordsDisplay
(totalDisplayRecord === 0)? alert("table is empty") : alert("table is not empty");
或
//gives the total number of records in table
var totalRecords =$(".dTable").DataTable().page.info().recordsTotal;
//test if dataTable is empty
(totalRecords === 0)? alert("table is empty") : alert("table is not empty");
答案 1 :(得分:4)
如何知道Datatable是否为空
var table = $('#idTable').DataTable();
if ( ! table.data().any() ) {
alert( 'Empty table' );
}
答案 2 :(得分:2)
另一种方式
var count = $("table.dTable").dataTable().fnSettings().aoData.length;
if (count == 0)
{
alert("Please enter the Data");
}else{
alert("Table contains " + count + ' rows');
}
&#13;
<table class="dTable"></table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.16/js/jquery.dataTables.min.js"></script>
&#13;
答案 3 :(得分:1)