【问题标题】:Jquery datatables. Array of rows of visible columnsJquery 数据表。可见列的行数组
【发布时间】:2016-12-14 09:18:14
【问题描述】:

我正在尝试从我的数据表中提取一组行。我的问题是我有一些 json 字段填充了我没有在表中显示的表。当我使用

$('#myTable').DataTable().rows().data().toArray() 

我得到了那些我不需要的字段。

¿如何获取显示的字段或列的数组?

提前致谢。

【问题讨论】:

    标签: javascript jquery jquery-ui datatables


    【解决方案1】:

    您需要使用selector-modifier

    $('#myTable').DataTable().rows({search:'applied'}).data().toArray();
    

    -------------------------------------

    编辑

    完成您所要求的一种可能方法是首先检查哪些列是可见的。然后,处理每个结果行并仅获取所需的字段。

    var columns = $('#myTable').DataTable().columns().visible();
    var rows = $('#myTable').DataTable().rows().data().toArray();
    var result = []; // this array will contain only the visible fields of each row
    for (var i = 0; i < rows.length; ++i) {
        var row = [];
        for (var j = 0; j < columns.length; ++j)
            if (columns[j]) // is visible
                row.push(rows[i][j]);
        result.push(row);
    }
    

    【讨论】:

    • 嗨 Dacklf,我使用选择器修饰符得到了相同的结果。问题是,为了填充数据表,我使用了一个 json,其中包含我在表中使用的更多字段。并且使用 data() 我得到了我这次不需要的那些字段。感谢您的宝贵时间
    • 哦,抱歉,我误解了您的要求。检查编辑。
    • 这是我的解决方案:
    • 这是我的解决方案:var data = []; $('#myTable').DataTable().rows().every(function (rowIdx) { datat.push($.extend({}, this.cells(rowIdx, ':visible').data(). toArray())); });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多