克隆/复制html节点,包括它们的样式

时间:2014-02-13 14:04:21

标签: javascript html

我最近开始研究克隆显示对象。

我观察到基本上有两种克隆节点的方法:

1)我尝试使用“cloneNode”方法克隆节点,这种方法非常好,但在旧浏览器中不受支持。

var newNode = oldNode.cloneNode(deep);

cloneNode Reference MDN

2)对于旧浏览器,我试图复制outerHTML并将值设置为innerHTML。像

newNode.innerHTML = oldNode.outerHTML

注意:

对于某些旧版本的Internet Explorer,innerHTML是表元素的只读属性。

上述方法中最好的是什么,还是有其他最好的方法。请帮帮我。

1 个答案:

答案 0 :(得分:0)

您是否尝试过jquery的$.clone方法? http://api.jquery.com/clone/

$( "#oldNode" ).clone().appendTo( "#newNode" );

编辑:啊,我看到你的问题是innerHtml只在ie表中读取

This answer为ie表格行中的innerHtml提供了一种解决方法

function setTBodyInnerHTML(tbody, html) {
  var temp = tbody.ownerDocument.createElement('div');
  temp.innerHTML = '<table>' + html + '</table>';

  tbody.parentNode.replaceChild(temp.firstChild.firstChild, tbody);
}