【发布时间】:2010-02-01 10:29:14
【问题描述】:
在我的程序中,我尝试复制一个元素,使用 .clone() 方法,但是这个方法不会复制元素的样式,所以我必须像这样一个一个地翻译它们:
var style = {
"position":"absolute",
"color": $(demo[i][1]).css("color"),
"width": $(demo[i][1]).width(),
"height": $(demo[i][1]).height(),
"font-size": $(demo[i][1]).css("font-size"),
"font": $(demo[i][1]).css("font"),
"text-align": $(demo[i][1]).css("text-align"),
"padding-left": $(demo[i][1]).css("padding-left"),
"padding-right": $(demo[i][1]).css("padding-right"),
"padding-top": $(demo[i][1]).css("padding-top"),
"padding-bottom": $(demo[i][1]).css("padding-bottom"),
}
然后使用 .css 方法来应用这些样式,但是一个一个地复制这些似乎是一个愚蠢的想法。 那么有没有比 .clone() 方法更好的方法来复制元素以便也复制其样式,如果没有,是否有任何方法可以自动映射所有可能的 css() 结果而不会遇到所有这些麻烦?
这是我的新方法,还有更好的方法吗?
var styleList = ['background', 'border', 'outline','font', 'list-style', 'padding', 'display', 'float','overflow', 'visibility', '宽度','高度','边框折叠','边框间距','标题侧','空单元格','表格布局','颜色','方向','字母间距' , 'line-height', 'text-align', 'text-decoration', 'text-indent', 'text-transform', 'vertical-align', 'white-space', 'word-spacing']
var style = {'position':'absolute'}
$.each(styleList, function(i, property){ 样式[属性]= original.css(属性) });
【问题讨论】:
-
您是否尝试过使用 withDataAndEvents 参数(请参阅api.jquery.com/clone)?
-
我试过 .clone('withDataAndEvents') 和 .clone(true),都没有成功
标签: jquery