回到课程

为什么留下 "aaa"?

重要程度: 1

在下面这个示例中,我们调用 table.remove() 从文档中删除表格。

但如果运行它,你就会看到文本 "aaa" 并没有被删除。

这是为什么?

<table id="table"> aaa <tr> <td>Test</td> </tr> </table> <script> alert(table); // 表格,就是它应有的样子 table.remove(); // 为什么 "aaa" 还存在于文档中? </script>

这个题目中的 HTML 是错的。这就是造成怪异现象的原因。

浏览器必须自动修复它。但 <table> 内可能会没有文本:根据规范,只允许特定于表格的标签。所以浏览器将 "aaa" 展示在了 <table> 前面

当我们删除表格后,文本 "aaa" 仍然存在的原因就很明显了吧。

通过使用浏览器开发者工具查看 DOM,就可以轻松地回答这个问题。从浏览器开发者工具中我们可以看到,"aaa"<table> 前面。

HTML 标准规范详细描述了如何处理错误的 HTML,并且浏览器的这种行为是正确的。