Html 哪些DOM元素可以是tr的子元素?
我有问题,因为我想在Html 哪些DOM元素可以是tr的子元素?,html,dom,Html,Dom,我有问题,因为我想在tr内部包围一些td,所以我需要知道 哪些DOM元素可以是tr的子元素?(我知道div不能。)声明: 允许内容 零个或多个:一个td元素,或一个th元素 元素只能包含s和s。W3C指定此内容。对于tr,您可以找到它。基本上,只有th和td元素可以是tr的直接内容 如果您想在表中添加其他内容,则必须将其放入td或th元素中。例如,td可以包含流元素,包括div如果问题是关于从符合HTML规范的HTML文档构造的DOM树,那么答案是td和th,如paxdiablo的回答所述 但您
tr
内部包围一些td
,所以我需要知道
哪些DOM元素可以是tr的子元素?(我知道div不能。)声明:
允许内容
零个或多个:一个td
元素,或一个th
元素
元素只能包含
s和
s。W3C指定此内容。对于tr
,您可以找到它。基本上,只有th
和td
元素可以是tr
的直接内容
如果您想在表中添加其他内容,则必须将其放入
td
或th
元素中。例如,td
可以包含流元素,包括div
如果问题是关于从符合HTML规范的HTML文档构造的DOM树,那么答案是td
和th
,如paxdiablo的回答所述
但您可以在脚本中随意修改DOM树。例如:
<!doctype html>
<table border>
<tr><td>foo <td>bar
</table>
<script>
var p = document.createElement('div');
p.innerHTML = 'Hello world!';
document.getElementsByTagName('tr')[0].appendChild(p);
</script>
富吧
var p=document.createElement('div');
p、 innerHTML='Hello world!';
document.getElementsByTagName('tr')[0].appendChild(p);
这将使div
元素成为tr
元素的子元素。您甚至可以创建一些td
元素,并使它们成为div
元素的子元素
这是否有意义以及是否会混淆浏览器是另一个问题。浏览器通常不会解析HTML标记,例如tr
元素作为子元素包含div
元素,解析器不准备处理此类情况。在HTML标记中不可能对td
元素进行分组(除了将它们作为tr
的子元素之外的任何其他方式)。但在DOM中,可以创建奇数树
如果只是想以一种特殊的方式处理一些
td
元素,给它们一个类
这种情况与ul
的情况非常相似,我已经在中详细描述过了:因此我建议您先阅读
值得注意的是,不太明显的一点是,ASCII空白不构成文本节点,而任何非空白字符构成非法文本节点,它们不能是表
的子节点
然后,在当前标准中的tr
的“内容模型”中,我们看到:
内容模型:
零个或多个td
,th
,以及脚本支持元素
元素可以同时包含这两个元素。@Blender-好吧,您实际上是在阅读参考,而不是规范。说明中说“零个或多个td或th元素”。上面写着
。但你误读了参考文献;上面写着“零个或多个:一个td元素,或一个th元素”。注意冒号的位置。它是(一个td元素或一个th元素)血清或多次。但在任何情况下,在验证器中检查它都是一个简单的测试。