「aaa」が残っているのはなぜですか?
importance: 1
次の例では、呼び出しtable.remove()
はドキュメントからテーブルを削除します。
しかし、実行すると、テキスト"aaa"
が依然として表示されていることがわかります。
なぜそうなるのでしょうか?
<table id="table">
aaa
<tr>
<td>Test</td>
</tr>
</table>
<script>
alert(table); // the table, as it should be
table.remove();
// why there's still "aaa" in the document?
</script>
タスクの HTML は正しくありません。これが奇妙な現象の理由です。
ブラウザはそれを自動的に修正する必要があります。しかし、<table>
の中にテキストがない可能性があります。仕様によると、テーブル固有のタグのみが許可されているからです。そのため、ブラウザは<table>
の前に"aaa"
を表示します。
テーブルを削除すると、それが残ることが明らかです。
ブラウザのツールを使用して DOM を調べることで、質問には簡単に答えることができます。<table>
の前に"aaa"
が表示されます。
HTML 標準では無効な HTML を処理する方法が詳細に指定されており、ブラウザのこのような動作は正しいものです。