js克隆一段html元素,javascript克隆元素样式的实现代码

Posted weixin_39890543

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js克隆一段html元素,javascript克隆元素样式的实现代码相关的知识,希望对你有一定的参考价值。

/**

* 克隆元素样式

* @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的最终样式到span

我是DIV标签 我是SPAN标签

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

相关资源:程序天下:javascript实例自学手册

以上是关于js克隆一段html元素,javascript克隆元素样式的实现代码的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript index.js .babelrc 错误“不要克隆注释 tha...<省略>... 无法克隆”

关于JavaScript对象深度克隆

JavaScript DOM实战:创建和克隆元素

javascript 在JS中克隆一个对象

javascript js深度克隆

javascript 克隆对象#js #object