如何在DataTable中将targets:1列的值赋值给变量?
从DataTable隐藏列(targets:1)提取值存入变量
你的DataTable配置中,targets:1列处于隐藏状态,以下是几种实用的方法提取该列值存入变量,满足页面其他区域展示需求:
1. 获取选中行的目标列值
如果需要在用户点击表格行时提取对应行的targets:1列值,可通过行点击事件实现:
// 给表格行绑定点击事件 $('#lstRefacciones').on('click', 'tr', function() { // 获取当前行的DataTable实例对象 const row = tableRefacciones.row(this); // 提取targets:1列的值(DataTable列索引从0开始,targets:1对应索引1) const targetValue = row.data()[1]; // 存入变量,可直接用于页面展示 console.log(targetValue); // 测试输出 // 示例:将值赋值给页面元素 $('#displayElement').text(targetValue); });
2. 获取所有行的目标列值
若需要收集所有行的targets:1列值到数组变量中,可借助columns().data()方法,建议在数据加载完成后执行:
tableRefacciones = $('#lstRefacciones').DataTable({ dom: 'Bfrtip', ajax: { url: 'almacenes/salidas_caja_detalle.ajax.php', dataSrc: "" }, columnDefs: [ { targets: 1, visible: false }, { targets: 3, visible: true, render: $.fn.dataTable.render.number(',', '.', 2, '') }, { targets: 4, visible: false, } ], // 数据加载完成后的回调函数 initComplete: function() { // 获取索引1列的所有数据并转为数组 const allTargetValues = tableRefacciones.column(1).data().toArray(); // allTargetValues即为所有行的targets:1列值集合 console.log(allTargetValues); // 后续可根据需求处理该数组(比如批量展示) } });
关键注意点
- DataTable的列索引从0开始计数,
targets:1对应的是索引为1的列,调用方法时需匹配正确索引。 - 由于你的表格是AJAX异步加载数据,必须确保在数据加载完成后再提取值,
initComplete回调或draw.dt事件都是可靠的执行时机。
内容的提问来源于stack exchange,提问作者Julio T
相关产品推荐
相关产品推荐

