保留在cloneNode()之后写入DOM对象的数据
Preserve data written to DOM object after cloneNode()
当我向dom节点对象写入(复杂)值时,当我在该节点上执行cloneNode时,该值将丢失,参见示例:http://codepen.io/anon/pen/ohGDy
是否有一种方法来保存这些数据与cloneNode()?
请记住,被克隆的节点以及被设置的值可能比示例复杂得多(例如:该值可以在被克隆节点的子节点上设置,可以是对象而不是字符串。
CloneNode复制一个htmlDomObject,一个htmlDomObject有html属性,它不像一个普通的javascript对象有属性。Javascript就是Javascript,它允许你给domObject分配一个属性,因为它可以让你做任何你想做的事情。
然而,cloneNode专门处理domObject和domObject不能有字符串属性,如果你做typeof foo.bar
,你会看到它确实是一个字符串类型。
我把你的代码改成了:
var foo = document.getElementById("foo");
foo.setAttribute('bar', 'foobar');
var foo2 = foo.cloneNode(true);
document.write("foo: " + foo.getAttribute('bar') + "<br>");
document.write("foo2: " + foo2.getAttribute('bar'));
对于两者它都打印出foobar
,因此您可以看到节点上设置的html属性被cloneNode复制。
编辑代码:http://codepen.io/anon/pen/Ltiov
相关文章:
- 将GET请求(HTML字符串)转换为完整的DOM对象
- 在Angular中呈现DOM对象时,如何调用控制器中指定的函数
- 不带dom对象的jquery ajaxComplete()
- 从 DOM 数组中删除 DOM 对象
- Raphael JS:如何从 Dom 对象(Element.node)获取 Raphael 元素
- SVG DOM对象间距/重叠
- DOM对象而不是其他DOM对象
- 如何区分DOM对象和JavaScript对象
- 在提取dom对象后,无法将每个名为tab的元素推送到数组中
- M项目2:是否可以从DOM对象中获取M视图
- Javascript关闭DOM对象事件和事件冒泡
- 如何使用jQuery将重复类添加到DOM对象中
- 当请求DOM对象时,XMLHttpRequest.send()抛出异常
- 从非DOM对象内部调度和处理自定义事件
- dom对象创建javascript和jquery后的事件触发器
- 使用Internet Explorer检索XML DOM对象的URI
- 如何将事件绑定到没有DOM对象的函数
- 使用 Aurelia动态创建一个 dom 对象
- 使用 jQuery 操作 DOM 对象
- 使用多个 css 类将 css 转换属性应用于 DOM 对象时遇到问题