Начну с небольшой предыстории.
Итак, что я пытаюсь сделать, так это получить атрибут «стиль» от элемента, и конечный план состоит в том, чтобы вывести его в текстовое поле (стиль является динамическим). При этом я создаю некоторые префиксы css из-за того, что я использую только вычисляемые стили.
При этом у меня есть переменная с набором свойств css, как показано здесь:
compcss = {
'font-size': fsize,
'padding': tpadd,
'-webkit-border-radius': brad,
'-moz-border-radius': brad,
'-o-border-radius': brad,
'-ms-border-radius': brad,
'border-radius': brad,
'background': bground,
'background-m': bgmoz,
'background-o': bgop,
'background-i': bgie,
'color': 'white',
'text-shadow': '0 -1px 0 rgba(0, 0, 0, 0.25)',
'text-decoration': 'none',
'border': '1px solid rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25)',
};
Обычно fsize, tpadd, brad и bground заполнены
document.defaultView.getComputedStyle(cssStr[0], "")[style]
, но для следующего jsbin я ввел статические числа.
Это возвращает как [object Object]
при входе в систему или вводе в текстовое поле, что и следовало ожидать. Однако я хочу, чтобы этот объект выводился в виде строки в форме:
font-size: Xpx;
padding: Ypx;
-webkit-border-radius: Zpx;
и т. д. Я пробовал JSON.stringify(compcss), но это возвращает как:
"font-fize":"Xpx","padding":"Ypx","-webkit-border-radius":"Zpx"
на всем протяжении строки.
Как лучше всего заставить это выводить так, как я хочу? Дайте мне знать, если что-то нуждается в уточнении. Есть ли лучший способ сделать это?
вот пример jsbin: http://jsbin.com/opiwuy/2/edit
И Vanilla Javascript, и JQuery подходят.
Спасибо!