Tableには果たしてaaaがあるのだろうか.


Tableには果たしてaaaがあるのだろうか。


重要度:1
次の例では、table.remove()を呼び出し、ドキュメントからテーブルを削除する必要があります.
ただし、このコードを実行すると、'aaa'のテキストが表示されます.
どうしてこんなことが起こったのですか.
<table id="table">
  aaa
  <tr>
    <td>Test</td>
  </tr>
</table>

<script>
  alert(table); // table 은 삭제할 표의 id 입니다.

  table.remove();
  // 왜 문서 안에 aaa가 남아 있을까요?
</script>
この奇妙な動作の原因は、与えられたHTMLが無効であることです.
ブラウザは自動的に修復する必要があります.ただし、リストによると、<table>にはテーブルに関連する特定のラベルしか存在しないため、テキストは存在しない.したがって、ブラウザは'aaa'<table>の前に追加する.
テーブルを削除しても、テキストが残っている理由がわかります.
ブラウザツールを使用してDOMをブラウズすると、答えが簡単に見つかります.ブラウザツールによると、<table>の前に'aaa'があります.
HTML規格は、誤ったHTMLをどのように修正するかを具体的に規定しているので、これらのブラウザの動作は正しい.
trはspecでテキストノードの挿入を制限する.基本的に、trタグに入るtextは、上方に放出されるcaseである.