retour au cours

Pourquoi "aaa" reste-t-il ?

importance: 1

Dans l’exemple ci-dessous, l’appel table.remove() supprime le tableau du document.

mais si vous l’exécutez, vous pouvez voir que le texte "aaa" est toujours visible.

Pourquoi cela se produit-il ?

<table id="table">
  aaa
  <tr>
    <td>Test</td>
  </tr>
</table>

<script>
  alert(table); // la table, comme il se doit

  table.remove();
  // pourquoi y a-t-il encore "aaa" dans le document ?
</script>

Le code HTML de cette tâche est incorrect. Voilà la raison de la chose étrange.

Le navigateur doit le réparer automatiquement. Mais il peut ne pas y avoir de texte à l’intérieur de la <table> : selon la spécification, seules les balises spécifiques à la table sont autorisées. Le navigateur ajoute donc "aaa" avant la <table>.

Maintenant, il est évident que lorsque nous retirons la table, la chaîne de caractères reste.

La question peut être facilement répondue en explorant le DOM à l’aide des outils du navigateur. Vous verrez "aaa" avant la <table>.

Le standard HTML spécifie en détail comment traiter un mauvais HTML, et un tel comportement du navigateur est correct.