向表中添加行时,首选哪种方法?
var tr = tbl.insertRow(-1);
或
var tr = document.createElement('tr');tbl.appendChild(tr);
发布于 2009-05-18 20:17:43
insertRow会更好。它被A级浏览器评为supported,而且更简洁、更干净。
发布于 2010-09-17 09:07:11
我看到了支持insertRow的很好的理由,但我发现了一个缺点: insertRow只能创建一个新的空行,而appendChild接受一个现有的行对象。使用appendChild,您可以在表中来回移动行,将行从一个表移动到另一个表,或者从表中取出一行,然后将其放回表中(对于分页表来说非常方便)。要对insertRow (和insertCell)执行相同的操作,您必须打包内容,创建新行和单元格,然后将旧内容添加到新单元格。笨手笨脚的,而且似乎效率较低。有没有更优雅的方式来做这件事?一个接受现有行对象的insertRow变体会更好。
发布于 2009-05-18 20:28:55
因为它是DOM1,所以insertRow可能会被认为更可靠。
当在DOM之外操作时,appendChild方法在所有经过测试的浏览器(IE6/7、FF3、Chrome2、Opera9)上总是更快(尽管略快),但当试图修改文档内的表时(这是一种更常见的尝试),它的速度比慢得多。
换句话说:一定要使用insertRow。
这些测试是在本地执行的,因此可能不可靠,请参阅此处的来源:http://pastie.org/482023
https://stackoverflow.com/questions/879563
复制相似问题