Два года поздно, но у меня есть решение, которое вы ищете. Не намереваясь взять кредит у original author, вот плагин, который я нашел, работает исключительно хорошо для того, что вам нужно, но получает все возможных стилей во всех браузерах, даже IE.
Предупреждение: Этот код генерирует много выходных данных и должен использоваться экономно. Он не только копирует все стандартные свойства CSS, но и все свойства CSS для этого браузера.
jquery.getStyleObject.js:
/*
* getStyleObject Plugin for jQuery JavaScript Library
* From: http://upshots.org/?p=112
*/
(function($){
$.fn.getStyleObject = function(){
var dom = this.get(0);
var style;
var returns = {};
if(window.getComputedStyle){
var camelize = function(a,b){
return b.toUpperCase();
};
style = window.getComputedStyle(dom, null);
for(var i = 0, l = style.length; i < l; i++){
var prop = style[i];
var camel = prop.replace(/\-([a-z])/g, camelize);
var val = style.getPropertyValue(prop);
returns[camel] = val;
};
return returns;
};
if(style = dom.currentStyle){
for(var prop in style){
returns[prop] = style[prop];
};
return returns;
};
return this.css();
}
})(jQuery);
Основы использования довольно прост, но он написал функцию для этого, а также:
$.fn.copyCSS = function(source){
var styles = $(source).getStyleObject();
this.css(styles);
}
Надежда, что помогает.
Кстати, когда вы говорите * объект JSON *, вы просто имеете в виду объект JavaScript? – alex
+1 Mark, отличное решение, на которое я только что дал кредит [этот ответ] (http://stackoverflow.com/questions/6858042/how-to-tell-if-a-div-is-height-constrained/6858194 # 6858194) :) – Town
это выглядит потрясающе, но когда я пытаюсь, он пропускает определенные свойства, такие как семейство шрифтов. – Damon