Я в основном пытаюсь сохранить все текущие свойства CSS элемента в локальном var/массиве. Я попробовал:
el.css();
и
el.css("*");
Без удачи.
Есть ли какая-либо быстрая подсказка, делают к так?
Я обновил ответ, чтобы он был более эффективным, а также предоставил рабочую демонстрацию ...
$(function() {
// element tag example p and element id
function get_element_style(element, id){
var css = {};
$('<iframe id="get-style-'+id+'" style="display:none"/>').appendTo('body');
$('#get-style-'+id).contents().find('body').append('</'+element+'>');
$el = $('#get-style-'+id).contents().find('body').find(element);
var defaults_css = $el.getStyles();
$('#get-style-'+id).remove();
var element_css = $('#'+id).getStyles();
for (var i in element_css) {
if (element_css[i] !== defaults_css[i]) {
css[i] = element_css[i];
}
}
return css;
}
var properties = get_element_style('p', 'test-p');
});
проблема при получении стиля элемента в том, что вы получаете не только установленное значение, но и значения по умолчанию. с помощью этого кода я пытаюсь получить только установленные значения элемента. это работает как со стилем inline
, так и с