我无法理解为什么以下选择器按预期工作(即获取td):
table tr td
Run Code Online (Sandbox Code Playgroud)
但这个没有:
table > tr > td
Run Code Online (Sandbox Code Playgroud)
它td是后代tr,后者又是后代table,但他们也是彼此的孩子.因此,我认为>选择器也可以工作.
我做了两个小提琴:
为什么>选择器不在这里工作?
IE9和Chrome14都记录TBODY为tagName内部元素<table>
HTML5规范<table>清楚地说明:
后跟零个或多个tbody元素或一个或多个tr元素
此外.HTML5规范<tr>清楚地说明:
作为表元素的子元素,在任何标题,colgroup和thead元素之后,但仅当没有tbody元素是table元素的子元素时.
为什么浏览器会破坏我的DOM并注入<tbody>时间
"向后兼容性"的答案绝对没有意义,因为我特意选择了HTML5文档类型.