Почему остаётся "aaa"?
важность: 1
В примере ниже вызов table.remove()
удаляет таблицу из документа.
Но если вы запустите его, вы увидите, что текст "aaa"
все еще виден.
Почему так происходит?
<table id="table">
aaa
<tr>
<td>Тест</td>
</tr>
</table>
<script>
alert(table); // таблица, как и должно быть
table.remove();
// почему в документе остался текст "ааа"?
</script>
HTML в задаче некорректен. В этом всё дело.
Браузер исправил ошибку автоматически. Но внутри <table>
не может быть текста: в соответствии со спецификацией допускаются только табличные теги. Поэтому браузер показывает "aaa"
до <table>
.
Теперь очевидно, что когда мы удаляем таблицу, текст остаётся.
На этот вопрос можно легко ответить, изучив DOM, используя инструменты браузера. Вы увидите "aaa"
до элемента <table>
.
Вообще, в стандарте HTML описано, как браузеру обрабатывать некорректный HTML, так что такое действие браузера является правильным.