torna alle lezioni

Perché rimane "aaa"?

importanza: 1

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.