【问题标题】:cloning / duplicating html nodes including their styles克隆/复制 html 节点,包括它们的样式
【发布时间】:2014-02-13 22:23:10
【问题描述】:

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

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

1)我尝试过用“cloneNode”方法克隆节点,这个方法很不错,但是旧浏览器不支持。

var newNode = oldNode.cloneNode(deep);

cloneNode Reference MDN

2) 对于较旧的浏览器,我尝试复制 outerHTML 并将值设置为 innerHTML。喜欢

newNode.innerHTML = oldNode.outerHTML

注意:

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

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

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    你试过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);
    }
    

    【讨论】:

    • 谢谢。能详细点吗?
    • 这比我想象的要棘手,如果您还没有尝试,请更新我对两件事的回答
    • 我尝试了 jQuery 克隆方法,它很好,但我正在寻找纯 javascript 解决方案。
    猜你喜欢
    • 2012-10-06
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    相关资源
    最近更新 更多