javascript - 数据表插件中允许分页时,Jquery查找功能不起作用
问题描述
在实现其他情况之前,我成功地使用了数据表,但是当我启用分页时,我在循环其他行时遇到了问题。
我正在使用使用 Jquery 的查找函数来循环遍历表中的行,但它只遍历显示的行并且不会转到数据表的第二页。
这是一个工作小提琴https://jsfiddle.net/czarluc/5cm7rgvy/
这是我使用的功能。
function getTotalRows(){
var counter = 0;
$("#item_table").find('tr.tablerow').each(function (i, el) {
counter += 1;
});
return counter
}
总共有 20 行,但是当我执行该函数时,它只返回 5。
是否有任何替代功能或实现可用?
编辑:如果我禁用了分页,这将正常工作,但我只想看看如何使它在启用分页的情况下工作。
解决方案
看来我使用了错误的功能。我提出这个以防有人遇到同样的问题。
要访问 Datatable 中的行,请使用 rows().node() 函数而不是 Jquery find 函数,然后使用 foreach 函数遍历行。还将参考数据存储到变量中,然后使用它来访问 rows().node() 函数。
这是正确的代码。
var table = $("#item_table").DataTable({
pageLength : 5,
lengthMenu: [[5, 10, 20, 50], [5, 10, 20, 50]],
"columnDefs": [ {"className": "text-center", "targets": "_all"} ]
});
function getTotalRowsv2(){
var counter = 0;
$(table.rows().nodes()).each(function(i, el){
counter += 1;
});
return counter;
}
无论分页如何,此函数都会遍历所有行。它还按预期返回 20。这是文档链接。https://datatables.net/reference/api/rows().nodes()
推荐阅读
- .net-core - Entity Framework Core 忽略空更新
- reactjs - 使用 Axios 等 HTTP 客户端在 context-api 状态下存储获取的数据是一个好习惯吗?
- media-player - 在 Media Player Classic 中检索播放/暂停状态的更可靠方法 - 使用 AutoHotkey 的家庭影院?
- gpu - OpenCL 和路径追踪材料系统
- c# - 如何在 VS 中重新显示(激活)特定文档?
- security - 我如何从 hashcorp 保险库审计中理解某些内容?
- autoit - 如何使用 run 启动 .exe 文件
- ios - SwipeCellKit 不滑动单元格
- python - 删除 Pandas DataFrame 中值不是 NaN 的所有行
- angular - 在订阅内部使用 RxJS 的 group by