【问题标题】:Saving current element styling to a variable with jQuery [duplicate]使用jQuery将当前元素样式保存到变量中[重复]
【发布时间】:2014-05-12 18:13:33
【问题描述】:

假设我有以下 HTML sn-p:

<style>
#testSubject{
  color: red;
  width: 200px;
}
</style>

<p id="testSubject">Hello, world!</p>

使用 jQuery / vanilla JS,有没有办法将元素当前活动的样式保存到变量中,以便以后可以恢复/使用?

即:var testSubjectStyles = $('#testSubject').css('*');

现在我有了变量testSubjectStyles,并且可以将这些样式应用于任何元素。

可以这样做吗?我一直在玩 jQuery 的.css(),但这似乎只能让你设置样式。

【问题讨论】:

  • 我给出了一个简单的答案,使用 jquery 的 .css() 方法将元素的 css 提取到变量中并将其应用于另一个元素。

标签: javascript jquery css


【解决方案1】:

您可以使用var yourvar=element.css(); 来获取包含所有元素特定标准标记的对象。如果您还需要供应商标记,请查看这个更复杂的解决方案:

Taken from Here

function getStyleObject(stobj){
        var dom = stobj.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 stobj.css();
    }

那就用var yourstyle=getStyleObject(source);

【讨论】:

    【解决方案2】:

    假设您必须获取一个元素的背景颜色并将其应用于另一个元素

    var testSubjectStyles = $('#testSubject').css('backgroundColor');
    $("#anotherelement").css('backgroundColor',testSubjectStyles);
    

    希望这会有所帮助!

    【讨论】:

    • 或者您可以使用var yourvar=yourelement.css() 来获取包含该元素所有标记的对象。
    • @RenéRoth 那将是一个错误...
    • 是什么让有人对我的回答投了反对票,任何人都可以纠正我被误导的地方
    • 似乎有人度过了糟糕的一天,并否决了所有答案。
    【解决方案3】:

    你可以用 JavaScript 来做,你不需要使用 jQuery。

    var testSubjectStyles = $('#textSubject')[0].style;
    

    这将为您提供一个完整的 CSSStyleDeclaration 对象,其中包括该元素的所有 css 属性。

    【讨论】:

    • 这只是包含通过 style= 属性设置的 CSS,还是在外部样式表中包含 CSS?
    • 它包括元素中所有活动的css属性,无论它们来自哪里
    • 那不是 jquery 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 2015-05-06
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多