如何低层级获取jQuery DataTables中选中的单元格?
解决DataTables选中行单元格内容获取问题
1. 正确获取单个单元格的内容
你当前调用cells(0).data()返回对象,是因为cells()方法返回的是DataTables的API对象,需要通过以下方式取出实际内容:
var r = table.rows({ selected: true }); for (i = 0; i < r.count(); ++i) { // 获取第1列的原始数据源内容 console.log('data2:' + table.row(r[i]).cells(0).data()[0]); // 获取第1列在页面渲染后的文本内容 console.log('data2:' + table.row(r[i]).cells(0).text()[0]); }
2. 直接通过行列坐标访问单元格
如果你想类似table.cells[4,3]的方式直接访问,可使用DataTables的cell()方法(注意索引从0开始):
// 访问第5行第4列(对应索引4,3) var cellRawData = table.cell(4, 3).data(); var cellDisplayText = table.cell(4, 3).text(); console.log(cellRawData, cellDisplayText);
3. 解决单元格内逗号的混淆问题
避免直接拼接数组导致的逗号歧义,可采用以下两种方式处理:
var r = table.rows({ selected: true }); for (i = 0; i < r.count(); ++i) { var rowData = table.row(r[i]).data(); // 用JSON序列化保留完整结构,可还原原始数据 console.log('data:' + JSON.stringify(rowData)); // 用自定义分隔符(比如|)替代逗号,前提是内容不含该符号 console.log('data:' + rowData.join('|')); }
内容的提问来源于stack exchange,提问作者ZioBit
相关产品推荐
相关产品推荐

