用于伪克隆的克隆元素样式
问题:
您想要一个 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中文网其他相关文章!