2011-06-26 12 views
10

¿Cómo se crea una etiqueta de TBody dentro de una etiqueta de tabla usando JavaScript puro? (Sin alteración manual del código HTML). Están las funciones HTMLTableElement.createTHead() y HTMLTableElement.createTFoot(), pero no hay funciones relacionadas con el elemento TBody. Para agregar a esto, una vez que haya creado un elemento THead, todas las filas siguientes agregadas a la tabla usando HTMLTableElement.insertRow() se agregan al elemento THead.¿Cómo creo la etiqueta de TBody en una tabla con JavaScript puro?

¿Cómo haría entonces para crear un elemento TBody debajo de la línea sin alterar manualmente el HTML?

+0

¿por qué solo nota 'HTMLTableElement.appendChild (document.createElement ('tbody'))'? – qwertymk

+0

Teniendo en cuenta la existencia de las dos funciones de creación antes mencionadas, supongo que hay un método igualmente elegante para crear una TBody. – Hubro

+0

¿Por qué? ¿Por qué hacer esto a ti mismo? Es mucho más rápido y fácil de leer que agregar un tbody y es aún más rápido y simple simplemente inyectarlo a través de innerHTML (aunque puede tener algunos inconvenientes) – qwertymk

Respuesta

16

Desde el DOM Level 1 spec

interfaz HTMLTableElement

Los métodos de crear y eliminar en la tabla permiten a los autores construyen y modificar tablas. HTML 4.0 especifica que solo uno de los elementos CAPTION, THEAD y TFOOT pueden existir en en una tabla. Por lo tanto, si existe, y se llama al método createTHead() o createTFoot() , el método devuelve el elemento THead o TFoot existente.

Así que createTHead y createTFoot son métodos de conveniencia que no necesariamente hacen una creación real.

Por el contrario, los elementos de la tabla pueden tener tantos <tbody> s como desee así que no es necesario un método especial, y HTMLTableElement.appendChild(document.createElement('tbody')) hará el trabajo completo muy bien.

+0

Agradable e informativo citar. Gracias – Hubro

Cuestiones relacionadas