You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取DataTables中选中行的数据值

解决方案

你可以利用 DataTables 内置的 API 直接获取选中行的原始数据对象,无需手动遍历 DOM 元素提取值。以下是两种可行的实现方式:

方式一:直接通过 DataTables 选中行 API 获取数据(推荐)

修改你的「Set Status」按钮的 action 函数:

action: function(e, dt, node, config) {
    // 获取 DataTable 实例
    var table = $('#sims').DataTable();
    // 获取所有选中行的数据,转为数组
    var selectedRowsData = table.rows({ selected: true }).data().toArray();
    
    // 遍历选中数据,提取所需字段
    selectedRowsData.forEach(function(row) {
        const simsPid = row.simsPid;
        const iccid = row.iccid;
        const imei = row.imei;
        
        // 这里可以对获取到的值进行后续操作,比如收集到数组中或发送请求
        console.log("选中行数据:", simsPid, iccid, imei);
    });
}

方式二:基于你现有代码的改造

如果你想保留当前获取行元素的逻辑,可以通过 row().data() 方法从行元素中提取数据:

action: function(e, dt, node, config) {
    var client_table = $('#sims').DataTable();

    var rows = $(client_table.$('input[type="checkbox"]').map(function() {
        return $(this).prop("checked") ? $(this).closest('tr') : null;
    }));

    $.each(rows, function(index, rowElement) {
        // 从行元素中获取对应的数据对象
        const rowData = client_table.row(rowElement).data();
        
        // 提取所需字段
        const simsPid = rowData.simsPid;
        const iccid = rowData.iccid;
        const imei = rowData.imei;
        
        // 后续操作
        console.log(simsPid, iccid, imei);
    });
}

说明

  • DataTables 会将每行的原始数据存储在内部,即使列设置为 visible: false(比如你的 simsPid 列),也能通过 row().data() 完整获取。
  • 第一种方式更简洁高效,利用了 DataTables 内置的选中状态管理,避免了手动操作 DOM 的冗余代码。

内容的提问来源于stack exchange,提问作者Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:06:19