7
¿Qué método se prefiere para agregar una fila a una tabla?insertRow vs. appendChild
var tr = tbl.insertRow (-1);
o
var tr = document.createElement ('tr'); tbl.appendChild (tr);
?
¿Qué método se prefiere para agregar una fila a una tabla?insertRow vs. appendChild
var tr = tbl.insertRow (-1);
o
var tr = document.createElement ('tr'); tbl.appendChild (tr);
?
insertRow
sería mucho mejor. Es supported por navegadores de grado A y es menos detallado y una API más limpia.
Además, las filas no siempre son elementos secundarios de la tabla, lo que hace que el método appendChild sea más complejo. –
@rex: ¿qué quieres decir? – erikkallen
insertRow
podría argumentarse como más confiable ya que es DOM [1].El método
appendChild
es consistentemente más rápido (aunque marginalmente) en todos los navegadores probados (IE6/7, FF3, Chrome2, Opera9) cuando se opera fuera del DOM, pero cuando se trata de modificar tablas dentro del documento (una más esfuerzo común) es significativamente más lento.En otras palabras: definitivamente use
insertRow
.Estas pruebas se llevaron a cabo a nivel local por lo que puede no ser fiable, véase la fuente aquí: http://pastie.org/482023
Fuente
2009-05-18 20:28:54 James
Si usted hace uso de métodos DOM, un tr se debe anexar a un tbody, culata en T, o elemento de tfoot, y no a un elemento de tabla.
Fuente
2009-05-18 22:19:52 kennebec
Veo buenos argumentos para insertRow, pero encuentro una desventaja: insertRow solo puede crear una nueva fila vacía, mientras que appendChild toma un objeto de fila existente. Con appendChild, puede mover filas en una tabla, mover una fila de una tabla a otra, o sacar una fila de una tabla y luego volver a colocarla (muy útil para tablas paginadas). Para hacer lo mismo con insertRow (y InsertCell), deberá empaquetar los contenidos, crear nuevas filas y celdas, y luego agregar los contenidos anteriores a las nuevas celdas. Torpe, y aparentemente menos eficiente. ¿Hay alguna manera más elegante de hacer esto? Una variante de insertRow que tome un objeto de fila existente sería agradable.
Fuente
2010-09-17 01:07:10 Andrew
Cuestiones relacionadas