如何在jQuery DataTable中获取仅隐藏列的数据?
jQuery DataTable 获取仅隐藏列的数据
要获取仅隐藏列的数据,你可以分两步操作,比你之前的代码更简洁直接:
1. 先获取所有隐藏列的索引
用DataTable内置的选择器直接定位隐藏列,拿到它们的索引数组:
var dt = $('#example').DataTable(); // 获取所有隐藏列的索引,转成普通数组 var hiddenColIndexes = dt.columns(':hidden').indexes().toArray();
2. 提取目标行的隐藏列数据
根据你的需求选择对应的行范围,再提取隐藏列的数据:
情况1:获取所有行(包括筛选后隐藏的行)的隐藏列数据
var allHiddenData = dt.rows().data().map(function(rowData) { // 从当前行中提取所有隐藏列对应的数据 return hiddenColIndexes.map(function(colIdx) { return rowData[colIdx]; }); }); // allHiddenData 是一个二维数组,每个子数组对应一行的隐藏列数据
情况2:仅获取筛选后匹配的行(包括可见和筛选隐藏的行)的隐藏列数据
var filteredHiddenData = dt.rows({ filter: 'applied' }).data().map(function(rowData) { return hiddenColIndexes.map(function(colIdx) { return rowData[colIdx]; }); });
情况3:仅获取当前页可见行的隐藏列数据
var currentPageHiddenData = dt.rows({ page: 'current' }).data().map(function(rowData) { return hiddenColIndexes.map(function(colIdx) { return rowData[colIdx]; }); });
补充说明
你之前的第一段代码只是收集了隐藏列的索引,但没提取对应行的数据;第二段代码是拿到了筛选后可见行的所有列数据,但没筛选出隐藏列部分。上面的方法直接把这两步结合,精准提取你需要的隐藏列数据。
内容的提问来源于stack exchange,提问作者KitKat
相关产品推荐
相关产品推荐

