Два года спустя, но у меня есть решение, которое вы ищете. Не собираясь брать кредит от оригинального автора , вот плагин, который, как я обнаружил, работает исключительно хорошо для того, что вам нужно, но получает все возможные стили во всех браузерах, даже в 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);
}
Надеюсь, это поможет.