Получить идентификатор из tr, созданного с помощью js-grid, путь к свойствам меняется каждый раз - PullRequest
0 голосов
/ 03 октября 2019

Так что я использую js-grid для заполнения общей сетки. У меня есть 4 видимых столбца и 1 скрытый столбец идентификатора. Я пытаюсь передать уникальный идентификатор в строке в другую функцию. Однако, когда я погружаюсь в путь свойств объекта, возвращаюсь с помощью jquery. Ключ, к которому мне нужно добраться, вложен в ключ, который, кажется, меняется каждый раз, когда я возвращаю объект.

Here's the JS grid code...
$("#jsGrid").jsGrid({
        width: "100%",
        height: "25rem",

        autoload: true,
        inserting: false,
        editing: false,
        sorting: false,
        paging: true,
        pageloading: true,

        data: data,

        fields: [
            { name: "ID", type: "text", width: 25, align: "center", visible: false },
            { name: "Date", type: "text", width: 25, align: "center" },
            { name: "Color", type: "text", width: 25, align: "center" },
            { name: "type", type: "text", width: 25, align: "center" },
        { name: "other", type: "text", width: 25, align: "center" }
        ]
});

Here's some sample data...
var data = [
    { "ID": "123", "Date": "3/15/19", "color": "Brown", "type": "something", "other": "7 mins" },
    { "ID": "124", "Date": "3/15/19", "color": "Red", "type": "something", "other": "15 mins" },
    { "ID": "125", "Date": "3/15/19", "color": "Blue", "type": "something", "other": "15 mins" },
    { "ID": "126", "Date": "3/15/19", "color": "Blue", "type": "something", "other": "7 mins" },
    { "ID": "127", "Date": "3/15/19", "color": "Black", "type": "something", "other": "20 mins" },
    { "ID": "128", "Date": "3/15/19", "color": "Gold", "type": "something", "other": "5 mins" },
    { "Date": "TOTAL", "color": "", "type": "", "other": "74 mins"}
];

Here's the code I use to get the <tr> object using console
$(".jsgrid-table > tbody > tr:not('[class*=totalsRow]')");

Вот что я вижу. Ключ / ключи, которые изменяются, находятся на прикрепленном изображении и начинаются со слова jQuery.

enter image description here

1 Ответ

1 голос
/ 04 октября 2019

Итак, я попробовал ваш код. Исходя из того, что вы мне дали, мне пришлось написать собственный метод для достижения этой цели.

var k = $('.jsgrid-table > tbody > tr');

Items = GetMatchingProperties(k, 'jQuery'); //'jQuery' This is the word that matches
console.log(Items);



function GetMatchingProperties(items, attribName) {
    var list = [];
    $(items).each(function(i, t) {
        var $t = $(t);
        var keys = Object.keys($t[0]);
        var JQueryKey = keys.filter(function(x){
            if(x.match(attribName)){
                return x;
            }
        });
        $.each(JQueryKey, function(i, v){
            list.push( $t[0][v] );
        });
    });
    return list;
}
...