Лучший способ достичь этого - не использовать классы вообще, а вместо этого использовать индивидуальные атрибуты data-*
для каждого свойства.
Если вы не можете изменить HTML, вы можете достичь того, что вам нужно, создав массив объектов, содержащий пары ключ/значение. Затем можно использовать индекс элемента, чтобы связать его с пар ключ/значение объекта:
var arr = $('div').map(function() {
var obj = {};
for (var i = 0; i < this.classList.length; i++) {
var className = this.classList[i];
var matches = /^cc-(.+)-(.+)$/.exec(className);
obj[matches[1]] = matches[2];
}
return obj;
}).get();
Пример вывода:
Working example
Этот подход имеет преимущество быть полностью расширяемый; если вы добавите другие классы, тогда код будет автоматически работать без изменений.
Лучшим способом было бы не использовать классы для этого.Вместо этого используйте индивидуальные атрибуты 'data- *' для каждого свойства. Можете ли вы изменить формат HTML? –
Я знаю, но это невозможно в этом конкретном случае. – Spiro
Что вам нужно? Значения CSS 'color',' font-size' и 'width'? – Arg0n