динамически добавить класс css в строку

Я использую SlickGrid и хочу динамически добавить класс css в строку или ячейку в строку.

Этот подход добавляет класс highlight в столбец Name в строке 0:

grid.setCellCssStyles("highlight", {
   0 : {
       Name: "highlight",
       }
 });

Принимая во внимание, что я хочу установить класс css в строку, определенную в другой переменной. Я попробовал это, как показано ниже, но это не работает:

row = 0;
grid.setCellCssStyles("highlight", {
    row : {
        Name: "highlight",
        }
});

person Thomas Kremmel    schedule 11.10.2012    source источник
comment
да. Но я думаю, что не могу выбрать строки с помощью jquery, поскольку у них нет уникального набора идентификаторов.   -  person Thomas Kremmel    schedule 12.10.2012
comment
Вы знаете номер столбца и номер строки, верно?   -  person Sidharth Mudgal    schedule 12.10.2012


Ответы (1)


Пытаться:

var row=0;
var obj={};
obj[row]={Name:"highlight"};
grid.setCellCssStyles("highlight",obj);

Объяснение: когда JS читает "строку:..." как пару ключ-значение, он создает свойство, называемое строкой, для объекта и присваивает ему значение вместо того, чтобы вычислять переменную row и использовать ее значение в качестве ключа. Это связано с синтаксисом JSON, и я не знаю, как это обойти. Однако объекты javascript также доступны как ассоциативные массивы, что означает, что вы можете использовать трюк, который я сделал выше: установить свойство (оценка строки) obj на любое значение, которое вам нужно.

person Asad Saeeduddin    schedule 11.10.2012
comment
Чем это отличается от буквального обозначения? - person Paul S.; 12.10.2012
comment
Спасибо Асад! Не могли бы вы объяснить, почему это работает, а мой первый подход — нет!? - person Thomas Kremmel; 12.10.2012
comment
jsfiddle.net/JGdhX/1 В JSON ключ не заключен в кавычки или что-то еще. Когда js читает строку: ... как пару ключ-значение, он создает свойство с именем row для объекта и присваивает ему значение вместо оценки переменной row и использования ее значения в качестве ключа. - person Asad Saeeduddin; 12.10.2012