javascript - Html to DataTable -> 循环表的所有行,而不是仅循环当前页面中的行
问题描述
我的 asp.net-4.5 页面中有一个如下所示的数据表:
Name City Value Action
A B 10 delete
X Y 10 delete
T R 10 delete
ALL ALL 30
HTML 表通过以下方式转换为这样的数据表$(#example).datatable()
单击“删除”链接时,相关行将被删除,并且包含 ALL 的行的值正在 javascript 中更新。所以在这里,如果我删除第一行,表格将如下所示,没有任何页面刷新。
Name City Value Action
X Y 10 delete
T R 10 delete
ALL ALL 20
这里的一个问题是具有 ALL TOTAL 的行可以在其他任何地方,它并不总是在表的末尾。用户可以通过单击列重新排序表。例如,如果单击 Value 列,则包含 ALL 的行将是第一行。
此时,我想定位该行所在的位置。为此,我有一个如下的 for 循环:
for (var i = 0, r; r = document.getElementById("example").rows[i]; i++) {
if ($('#example').find("tr:eq(" + i + ")").find("td:eq(2)").html() == 'ALL') {
locateALLrow = i;
break;
}
}
当只有 1 页数据(一页包括 10 行)时,上面的这个 for 循环非常有效。所以我的问题:
1 - 我如何也可以遍历位于其他页面中的其他行?上面的这个循环仅适用于前 10 行并停止。如何将其扩展到所有表?
2-是否有更好的方法来定位包括 ALL 的行的索引(作为名称列)。
任何意见,将不胜感激。谢谢!
编辑:尝试了如下循环,没有修复:
for (var i = 0; i<document.getElementById("example").getElementsByTagName("tr").length; i++)
{...}
解决方案
1 - 我如何也可以遍历位于其他页面中的其他行?上面的这个循环仅适用于前 10 行并停止。如何将其扩展到所有表?
在使用分页时,不要遍历仅显示前 n 行数据的 html 表,而是尝试使用datatable API。您将能够使用它遍历完整的数据。 https://datatables.net/reference/api/rows().data()
2-是否有更好的方法来定位包括 ALL 的行的索引(作为名称列)。
同上。使用数据表API而不是循环通过当前 html 显示的数据。
推荐阅读
- node.js - 动态地将名称从表传递到函数定义
- java - 在不使用spring security的情况下在spring boot中获取静态资源的403
- django - 如何过滤我在 ModelChoiceField 字段中使用的查询集?
- php - 导入带有负数但减号是最后一个字符的 txt 文件
- swift - CocoaPods deintegrate 删除工作区文件
- node.js - 提高http请求响应时间
- pandas - 突出 matplotlib 中的政权变化
- java - 如何使用 Stream 填充矩阵?
- firebase - 从 Firestore 中删除数据时出现 StreamBuilder 错误 - 如何捕获错误
- unix - 在变量中获取 curl 命令的输出