Perché rimane "aaa"?
Nell’esempio sotto, la chiamata a table.remove()
rimuove la tabella dal documento.
Ma se eseguiamo il codice, potrai vedere che il testo "aaa"
è ancora visibile.
Perché?
<table id="table">
aaa
<tr>
<td>Test</td>
</tr>
</table>
<script>
alert(table); // la tabella, come dovrebbe essere
table.remove();
// perché aaa è ancora nel documento?
</script>
L’HTML nel task è incorretto. Questa è la ragione della stranezza.
Il browser deve sistemarlo automaticamente. Ma non vi può essere testo dentro a <table>
: secondo la specifica, solo gli specifici tag per le tabelle sono permessi. Perciò il browser aggiunge "aaa"
prima di <table>
.
Ora è ovvio perché, rimuovendo la tabella, il testo rimane.
La domanda può facilmente trovare risposta esplorando il DOM con gli strumenti del browser. Mostra "aaa"
prima di <table>
.
Lo standard HTML specifica in dettaglio come processare cattivo HTML, e questo comportamento del browser è corretto.