Datatable получить значения всех строк определенного столбца - PullRequest
0 голосов
/ 09 ноября 2018

Как получить все значения всех строк определенного столбца?

По сути, я хочу получить все значения из столбца 'Key' и выдвинуть массив allAdminKeys в качестве глобальной переменной, потому что эти значения мне нужны где-то еще.

 var t = $('#adminKeysTable').DataTable( {
            "ajax": {
                "url": getKeysById,
                "dataSrc": function(json) {
                    var rows = [];
                    for (var i=0;i<json.keys.length;i++) {
                        //skip rows "if a condition is met"
                        //here just any rows except row #1
                        if (json.keys[i].privileges == '32') 
                            rows.push(json.keys[i]);
                    }
                    return rows;
                }
            },
            "columns": [
                { "data": null },
                { "data": "name" },
                { "data": "key" },
                { "data": null }
            ],
            "columnDefs": [ 
                { "targets": 0, "searchable": false, "orderable": false},             
                { "targets": 2, "name": "key"}, 
                { "targets": -1, "defaultContent": '<div class="tb-btn regenerate-btn" id="btnRegenerateAdminKey" data-toggle="modal" data-target="#regenerateAdminKeyConfirmation"></div>'}
            ],
            "order": [[ 1, 'asc' ]],
            "paging":   false,
            "ordering": false,
            "info":     false,
            'processing': true
        } );

var allAdminKeys = [];
var rowData = t.rows().data(); //t is my table
        $.each($(rowData), function(key,value){
            allAdminKeys.push(value["key"]); //filter by "Key" column
        })
console.log(allAdminKeys); // returning an empty array

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Вы можете использовать функцию .columns() для доступа к данным

let col = 0 // can be column index or css class of column header

// get all cells of the column
const cells = $yourDataTable.columns(col).nodes()
0 голосов
/ 09 ноября 2018
"initComplete": function(settings, json){
                for (var i=0;i<json.keys.length;i++) {                                              
                    allAdminKeys.push(json.keys[i].key);
                }
            }   

Удалось добиться того, что я хотел, добавив это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...