Por qué "aaa" permanece?
En el ejemplo de abajo, la llamada table.remove()
quita la tabla del documento.
Pero si la ejecutas, puedes ver que el texto “aaa”` es aún visible.
¿Por qué ocurre esto?
<table id="table">
aaa
<tr>
<td>Test</td>
</tr>
</table>
<script>
alert(table); // la tabla, tal como debería ser
table.remove();
// ¿Por qué aún está "aaa" en el documento?
</script>
El HTML de la tarea es incorrecto. Esa es la razón del comportamiento extraño.
El navegador tiene que corregirlo automáticamente. No debe haber texto dentro de <table>
: de acuerdo con la especificación solo son permitidas las etiquetas específicas de tabla. Entonces el navegador ubica "aaa"
antes de <table>
.
Ahora resulta obvio que cuando quitamos la tabla, ese texto permanece.
La pregunta puede ser respondida fácilmente explorando el DOM usando la herramientas del navegador. Estas muestran "aaa"
antes que <table>
.
El estándar HTML especifica en detalle cómo procesar HTML incorrecto, y tal comportamiento del navegador es el correcto.