レッスンに戻る

なぜ "aaa" が残るのでしょう?

重要性: 1

例を実行してください。なぜ table.remove() はテキスト "aaa" を削除しないのでしょうか?

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

<script>
  alert(table); // テーブルがあります

  table.remove();
  // なぜドキュメントの中にまだ aaa があるのでしょう?
</script>

このタスクの HTML は正しくありません。これが奇妙な事象の理由です。

ブラウザはそれを自動的に修正する必要があります。しかし、<table> の中にテキストはないかもしれません。: 仕様によると、テーブル固有のタグだけが許可されます。したがって、ブラウザは <table>前に "aaa" を追加します。

これで、テーブルを削除したときに文字列が残っていた理由は明白になりました。

この問題はブラウザツールを使ってDOMを調べると簡単に答えることができます。<table> の前に "aaa" があります。

HTML標準では、悪いHTMLを処理する方法を詳細に指定しています。このようなブラウザの動作は正しいです。