使用jquery保存元素的所有css属性

时间:2010-05-03 13:19:44

标签: jquery css-selectors

我基本上试图在本地var / array中保存元素的所有当前css属性。 我试过了:

el.css();

el.css("*");

没有运气。

有没有快速提示呢?

2 个答案:

答案 0 :(得分:6)

  

我已经更新了答案,以提供更有效率的工作演示......

    $(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样式,也有<style><link>

  

答案 1 :(得分:3)

你的意思是:

el.attr('style');

此外,您可能会对此感兴趣:

How can I get list of all element css attributes with jQuery?