No se puede usar appendChild en elementos, solo en body.
Estoy tratando de crear una función que agregue filas y celdas a una tabla con datos de entradas, pero por alguna razón, después de crear una nueva fila e intentar usar appendChild
(o simplemente append
) para ponerla en la tabla, la consola muestra un error:
“Uncaught TypeError: No se pueden leer las propiedades de indefinido (leyendo ‘append’)”
¡Gracias por ayudar!
<html>
<body>
<table id="tbl" border="1">
</table><table>
<script>
function showStudent () {
let tbl = document.getElementById('tbl')
let tr = document.createElement('tr')
tbl.append(tr)
}
</script>
</table></body>
</html>
davy.ai
Hay algunos problemas potenciales con el código proporcionado que podrían estar causando el error de
Uncaught TypeError
. Aquí hay algunas cosas a tener en cuenta:table
no está cerrada correctamente. En lugar de<table>
, debería ser</table>
.append
se está llamando en el objeto equivocado. En lugar dedocument.tbl.append(tr)
, debería sertbl.append(tr)
.showStudent()
actualmente solo crea una nueva fila (tr
), pero no agrega ninguna celda o datos de entrada a la fila. Para agregar celdas, puedes crear nuevos elementostd
y agregarlos a la fila usando un enfoque similar al utilizado para crear la fila en sí.Aquí tienes una versión actualizada del código que incluye estos cambios:
Esta versión del código crea una nueva fila (
tr
) y dos nuevas celdas (td
) para cada “estudiante”. También crea dos nuevos elementos de entrada de texto para cada celda, aunque estos se pueden reemplazar por cualquier tipo de entrada que necesites para tu caso de uso particular. Por último, la función agrega cada uno de estos nuevos elementos a los nodos padres correspondientes (td
atr
,tr
atbl
) utilizando el métodoappendChild
.