Pourquoi "aaa" reste-t-il ?
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.