jquery.clone()元素的attrs

时间:2012-05-03 17:35:23

标签: javascript jquery vml

我创建vml元素v:shape,添加样式和属性,然后追加它。

var shape = document.createElement("v:shape");
//some attrs
shape.setAttribute("coordorigin", "0 0");
shape.setAttribute("coordsize", w + " " + h);
shape.setAttribute("stroked", "false");
//...
//some styles
shape.style.position = "absolute";
shape.style.top = 0 + "px";
shape.style.left = 0 + "px";
shape.style.width = w + "px";
shape.style.height = h + "px";
//...
$(element).append(shape);

我想将相同的形状添加到另一个地方

var shape2 = $(shape).clone(true);

但它只克隆样式

alert(shape2.css("position")); // absolute
alert(shape2.attr("coordsize")); // undefined

我做了什么?请帮帮我)
[编辑] 谢谢你的回答)对我来说很奇怪......我注意到当我将var element = document.createElement("p");附加到元素上时它会起作用但是我通过$(selector).each(function(index, element) {得到了我的元素即使我将它附加到身体它不起作用(

2 个答案:

答案 0 :(得分:0)

如果我假装缺失值,它对我有用:http://jsfiddle.net/JAAulde/hKCHX/1/(在Safari,Chrome和Firefox中尝试过)

答案 1 :(得分:0)

来自文档?

  

.clone([withDataAndEvents])

     

withDataAndEvents - 一个布尔值指示   是否应将事件处理程序与元素一起复制。

     

.clone([withDataAndEvents] [,deepWithDataAndEvents])

     

withDataAndEvents - 一个布尔值,指示事件处理程序和数据   应该与元素一起复制。

     

默认值为false。

     

deepWithDataAndEvents - 布尔值   指示事件处理程序和所有子项的数据   应该复制克隆元素。默认情况下,其值与。匹配   第一个参数的值(默认为false)。

使用clone(true)也会复制事件处理程序和数据。

这是您的确切代码(略有更改)的小提琴,可以正常使用FIDDLE

您确定正确定义了whelement变量,因为w undefined会导致您收到错误吗?