首页 >web前端 >js教程 >如何在没有标签限制的情况下克隆元素样式

如何在没有标签限制的情况下克隆元素样式

DDD
DDD原创
2024-10-22 12:40:02924浏览

How to Clone Element Styles Without Tag Restrictions

用于伪克隆的克隆元素样式

问题:

您想要一个 jQuery 插件模拟克隆元素样式而不限制元素标签。例如,您可能想要创建一个复制现有跨度视觉外观的表单输入。

解决方案:

适合此目的的插件是 getStyleObject。此插件检索给定元素的所有计算 CSS 样式,包括那些未通过内联样式显式设置的样式。

实现:

<code class="javascript">/*
 * getStyleObject Plugin for jQuery JavaScript Library
 * From: http://upshots.org/?p=112
 *
 * Copyright: Unknown, see source link
 * Plugin version by Dakota Schneider (http://hackthetruth.org)
 */

(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;i<style.length;i++){
                var prop = style[i];
                var camel = prop.replace(/\-([a-z])/g, camelize);
                var val = style.getPropertyValue(prop);
                returns[camel] = val;
            }
            return returns;
        }
        if(dom.currentStyle){
            style = dom.currentStyle;
            for(var prop in style){
                returns[prop] = style[prop];
            }
            return returns;
        }
        return this.css();
    }
})(jQuery);</code>

用法:

要将样式从一个元素应用到另一个元素,请使用以下语法:

<code class="javascript">// original element
var original = $("#original");

// cloned element without styling yet
var cloned = original.clone().appendTo(original.parent());

// get styles from original element
var style = original.getStyleObject();

// apply styles to cloned element
cloned.css(style);</code>

以上是如何在没有标签限制的情况下克隆元素样式的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn