代码之家  ›  专栏  ›  技术社区  ›  SvenFinke

将一个表的内容复制到另一个表中

  •  3
  • SvenFinke  · 技术社区  · 15 年前

    在我当前的应用程序中,我需要将一个表的内容复制到另一个表中。。。通过设置innerHTML,它可以在FF中完美工作。。。但不是在IE8中。。。 以下是我在FF中复制的代码:

    getID("tableA").innerHTML = getID("tableB").innerHTML;
    // getID is a custom function i wrote to provide a shorter version of document.getElementById();
    

    
    table
      tbody
        tr
          td "Content" /td
          td "Content" /td
        /tr
      /tbody
    /table
    
    

    我已经试过使用nodeValue。。或附加数据。。。或外部TML。。但是什么都没用。。。

    2 回复  |  直到 15 年前
        1
  •  7
  •   Quentin    15 年前

    Internet Explorer不允许您使用innerHTML编辑表的内部-要么全是,要么全是。

    var source = document.getElementById('tableA');
    var destination = document.getElementById('tableB');
    var copy = source.cloneNode(true);
    copy.setAttribute('id', 'tableB');
    destination.parentNode.replaceChild(copy, destination);
    
        2
  •  0
  •   Chuck    15 年前

    我有点惊讶地得知,IE 8没有修复这个问题。天啊,说你拖拖拉拉的。这是Internet Explorer实现innerHTML时故意忽略的,您不能在表中设置innerHTML。该功能的创建者提供了 an explanation and a workaround . 基本上,您可以获得一个实际的tbody节点,并使用replaceChild()将原始表的tbody转换为该节点。