作家
登录

javascript克隆元素样式的实现代码

作者: 来源:www.28hudong.com 2013-03-30 00:41:35 阅读 我要评论

复制代码 代码如下: /** * 克隆元素样式 * @param {HTMLElement} 被克隆的元素 * @param {Boolean} 是否启用缓存(默认true) * @return {String} css类名 */ var cloneStyle = (function (doc) { var rstyle = /^(number|string)$/, cloneName = '${cloneName}', sData = {}, addHeadStyle = function (content) { var style = sData[doc]; if (!style) { style = sData[doc] = doc.createElement('style'); doc.getElementsByTagName('head')[0].appendChild(style); }; style.styleSheet && (style.styleSheet.cssText += content) || style.appendChild(doc.createTextNode(content)); }, getStyle = 'getComputedStyle' in window ? function (elem, name) { return getComputedStyle(elem, null)[name]; } : function (elem, name) { return elem.currentStyle[name]; }; return function (source, cache) { if (!cache && source[cloneName]) return source[cloneName]; var className, name, cssText = [], sStyle = source.style; for (name in sStyle) { val = getStyle(source, name); if (val !== '' && rstyle.test(typeof val)) { name = name.replace(/([A-Z])/g,"-$1").toLowerCase(); cssText.push(name); cssText.push(':'); cssText.push(val); cssText.push(';'); }; }; cssText = cssText.join(''); source[cloneName] = className = 'clone' + (new Date).getTime(); addHeadStyle('.' + className + '{' + cssText + '}'); return className; }; }(document)); 演示: cloneStyle div { width:150px; margin:20px; background:#FBFCFD; border:1px solid #D0DCE8; text-align:center; line-height:3em; font-size:1.5em; } .skin { -webkit-border-radius:5px; -moz-border-radius:5px; border-radius:5px; } #div { width:300px; height:300px; } span { border:1px solid #D0DCE8; color:#F00; } 克隆div的最终样式到span 我是DIV标签 我是SPAN标签 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  推荐阅读

  jquery(live)中File input的change方法只起一次作用的解决办法

错误写法 复制代码 代码如下: $("#uploadImg").click(function(){   do something }); 正确写法 复制代码 代码如下: $("#uploadImg").live('change',function(){ do something }); >>>详细阅读


本文标题:javascript克隆元素样式的实现代码

地址:http://www.17bianji.com/kaifa2/JS/24041.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)