在我看来,我有四张桌子。对于每个表,我都使用jQuery数据表,因此,对于我在视图中显示的一条记录,如下所示:
我有什么
var countAllTablesRows = $("table tbody.teu-tbody tr").length;
console.log("Total Rows In Every Table on Page - " + countAllTablesRows);
var rowCountMinusOne = countAllTablesRows - 1;
console.log("Total Rows In Every Table on Page Minus One - " + rowCountMinusOne);
我的目标
当用户单击"Delete“链接时,我希望计数每个表tbody元素中的所有行。但是,我只想在有实际数据的情况下计算表行。不是只有一行表示“表中没有可用数据”的表。
我想也许使用.each()
只获取不包含“表中没有可用数据”的表,但我不知道如何攻击它。
任何帮助都是非常感谢的。
发布于 2018-09-19 17:08:27
在使用DataTables时,有几个datatable选项可以返回表中的行数。
rows().count()
是一种方式。如果您想要获得给定特定情况下的表行数,例如所选行数,这是非常方便的。
var table = $("#table-selector")
table.DataTable().rows().count()
.data()
是另一种方式。.data()
以数组的形式返回表中的所有数据,您可以从其中调用.length
来获取数组的长度。
var table = $("#table-selector")
table.DataTable().data().length
以上两种方法的工作方式是相同的。.data()
只返回表中的所有数据,而.rows()
可能返回或不返回所有数据,因为您可以为.rows()
函数提供特定的选择器。在这两种情况下,您都可以使用.length
或.count()
。你有一些灵活性。
由于您有多个表,所以可以修改其中的任何一个,以便一次从所有表中获取数据。
var table = $("#table-selector, #table-selector-two, #table-selector-three")
table.DataTable().rows().count()
此片段将提供表#表-选择器、表-选择器-2和表-选择器-3的计数。如果您有一个适用于所有这些人的公共类,这也是可行的。您没有提供HTML,所以我只能猜测您是如何选择表的。
发布于 2018-09-19 16:59:10
您可以使用JQuery ':not
‘和':contains
’过滤您的行,如下所示:
var countAllTablesRows = $("table tbody.teu-tbody tr:not:contains(No data)").length;
这将过滤行,因此只有不包含文本“无数据”的行才会被计数。
https://stackoverflow.com/questions/52410644
复制相似问题