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

insertRow与appendChild

  •  7
  • erikkallen  · 技术社区  · 15 年前

    向表中添加行时,首选哪种方法?

    var tr=tbl.insertRow(-1);

    var tr=document.createElement('tr'); 附肢儿童(tr);

    ?

    4 回复  |  直到 15 年前
        1
  •  5
  •   aleemb    15 年前

    insertRow 那就更好了。它是 supported

        2
  •  5
  •   Andrew    14 年前

    我看到了insertRow的好参数,但我发现了一个缺点:insertRow只能创建一个新的空行,而appendChild接受一个现有的row对象。使用appendChild,您可以在表中移动行,将行从一个表移动到另一个表,或者从表中取出一行,然后将其放回(对于分页表来说非常方便)。要对insertRow(和insertCell)执行相同的操作,您必须打包内容,创建新行和单元格,然后将旧内容添加到新单元格中。笨拙,而且似乎效率较低。有没有比这更优雅的方法?insertRow的一个变体可以接受现有的row对象。

        3
  •  3
  •   James    15 年前

    insertRow 可能会被认为更可靠,因为它是DOM[1]。

    这个 appendChild 在所有测试的浏览器(IE6/7、FF3、Chrome2、Opera9)中,该方法在运行时始终更快(尽管速度稍慢) 外部 但是当试图修改文档中的表时(更常见的做法),它是 .

    插入行 .


    这些测试是在本地进行的,因此可能不可靠,请参阅此处的来源: http://pastie.org/482023

        4
  •  0
  •   kennebec    15 年前

    如果确实使用dom方法,则tr应该附加到tbody、thead或tfoot元素,而不是table元素。