<table border="1"> <tbody> <tr> <td>1</td> <td>2</td> </tr> <tr> <td>3</td> <td>4</td> </tr> </tbody> </table>
如果我写这个,浏览器将正常分析.
<!-- <table border="1"> --> <tbody> <tr> <td>1</td> <td>2</td> </tr> <tr> <td>3</td> <td>4</td> </tr> </tbody> <!-- </table> -->
但是我这样写,我发现浏览器会分析它们而不需要任何像string这样的标签.
<tbody> <tr> <td>1</td> <td>2</td> </tr> <tr> <td>3</td> <td>4</td> </tr> </tbody>
是一样的
1 2 3 4
解决方法
浏览器会忽略< tbody>,< tr>和< td>标签和相应的结束标签.这在HTML规范中没有规定,因为它们没有定义语法错误文档的解析.但是,在HTML5草案中,有一个描述以与浏览器实际操作相对应的方式定义浏览器行为:
Tree construction.
这意味着您无法编写包含例如< tr>的HTML文档.表元素外的元素.浏览器中的HTML解析器根本不构造这样的文档树. (但是,您可以使用客户端编写动态构建此类文档.)