Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 哪些DOM元素可以是tr的子元素?_Html_Dom - Fatal编程技术网

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元素)血清或多次。但在任何情况下,在验证器中检查它都是一个简单的测试。