Back to the lesson

Why "aaa" remains?

importance: 1

Run the example. Why table.remove() does not delete the text "aaa"?

<table id="table">

  alert(table); // the table, as it should be

  // why there's still aaa in the document?

The HTML in the task is incorrect. That’s the reason of the odd thing.

The browser has to fix it automatically. But there may be no text inside the <table>: according to the spec only table-specific tags are allowed. So the browser adds "aaa" before the <table>.

Now it’s obvious that when we remove the table, it remains.

The question can be easily answered by exploring DOM using the browser tools. They show "aaa" before the <table>.

The HTML standard specifies in detail how to process bad HTML, and such behavior of the browser is correct.