如何获取DataTable中所有分页的表格行?
解决DataTable获取所有分页行的问题
直接用jQuery选择器$(".rowArray")只能拿到当前页的行,这是因为DataTable分页时,非当前页的行不会被渲染到DOM中,只在内存里维护数据。要获取所有分页的行,得用DataTable自带的API,而不是直接操作DOM。
具体实现步骤:
- 确保你已经初始化了DataTable实例(如果没提前保存实例,直接通过表格ID获取即可)
- 用DataTable的
rows().nodes()方法获取所有行的DOM节点,再筛选你需要的.rowArray类行
修改后的代码示例:
$("#uploadAllDataNewHired").click(function () { // 获取DataTable实例,替换成你的表格实际ID var dataTable = $('#yourTableId').DataTable(); // 获取所有分页的行DOM节点 var allRowNodes = dataTable.rows().nodes(); // 筛选出带.rowArray类的行 var tableRows = $(allRowNodes).filter('.rowArray'); // 这里可对tableRows进行操作,比如遍历处理 tableRows.each(function() { console.log($(this).text()); }); });
额外说明:
- 如果不需要DOM节点,只想获取所有行的数据,用
dataTable.rows().data(),返回的是包含所有行数据的数组 - 不要直接依赖DOM选择器操作DataTable的行,官方API才是正确方式,能避免分页、搜索、排序带来的DOM元素变化问题
内容的提问来源于stack exchange,提问作者Strywyr
相关产品推荐
相关产品推荐

