我认为这显然是肯定的,但我正在通过的教程告诉我:
"就像一个真正的家庭一样,元素有孩子,孙子, 曾孙,等等(尽管我们没有做出这种区分 使用HTML-元素的子元素,以及所有孩子的子元素 第一位父母的子女)。"
这是大会还是作者的意见?我已经非常广泛地搜索过W3C,但我找不到任何确认此声明的证据。
答案 0 :(得分:1)
通过iPhone执行此操作(对于缺乏相关证据和/或准确正确的条款而感到抱歉),但作为网络开发者已有15年以上的时间,我同意只有儿童。这种行为出现在CSS和JavaScript中 - 当你想要一个元素内部的东西时,你只需要它就好像它只是一个孩子。如果它真的是一个子级或三层以上的层次并不重要,该过程将遍历DOM并标记/利用该元素的每个实例(符合要求)作为子级或更低级别存在。
因此,虽然我无法指出确认这一点的正式文档,但是操纵或修改DOM的任何事物(AFAIR)的行为都符合“仅限子项”规范。
答案 1 :(得分:1)
不,不是真的。确实,HTML元素或HTML文档中的实际节点(DOM =文档对象模型)可以拥有子元素并且可以拥有父元素。
但与许多生物不同,没有性别和DNA混淆来创造一个新的节点。实际上,您甚至不需要父级来创建新节点。你可以创造一个无中生有的。
家谱
那么这些关系是什么?嗯,它们只是用于将它们放在层次结构中。 HTML文档有一个根节点,就像节点的Adam一样。其他节点可以将此节点作为其“父”,这意味着它们在层次结构中仅低一级。
它不是一个节点网络,而是一个树,所以总是(最多)一个节点(我们称之为父节点),层次结构中较高,零节点或更多节点较低。在演讲中你称之为父母和孩子,因为这是一个容易理解的家庭树类比,但这也是比较结束的地方。只有一个“父”,它是采用父级,因为它不一定是创建节点的那个。
如此常见的发言包括:
children
或childNodes
找到它。就目前而言。当然,你可以将他们称为祖父母,老叔叔,侄子和兄弟,但这会让它更加混乱,所以这并不是真的有用。
大孩子也是孩子吗?
现在这篇文章说大孩子也是孩子。这是真的。
例如,如果您有一个如下所示的CSS选择器:div img
,它会选择所有img
个元素,这些元素是子元素,大孩子,曾祖母,等等{{1} }。 jQuery和函数querySelector
and querySelectorAll
中的内置也严重依赖于这种表示法。
但是,如果您引用div
中元素的children
属性,则只能获得直接子项,也不会获得子项。实际上,CSS选择器也做出了这种区分。如果您选择JavaScript
,则会获得后代图片;如果您选择div img
,则只能获得div > img
的直接子图片。 (见CSS child and sibling selectors)
所以,不,声明不对。一个节点只有孩子,这些孩子可以有自己的孩子。 CSS和JavaScript中有智能选择器,可以让您选择族谱中任何“深度”的后代,但这并不会使这些节点成为父节点的直接子节点。
答案 2 :(得分:0)
HTML中没有真正的孙子元素。 但是你可以封装元素,例如
<div id='a'>
<div id='b'>
<div id='c'>
</div>
</div>
</div>
如您所见,b是a的子元素,c是b的子元素。 因此,从逻辑上讲,c是一个没有的孙子元素 HTML中的孙子元素。
答案 3 :(得分:0)
所有他说的是你可以无限期地嵌套元素......
<div class="great-grandparent">
<div class="grandparent">
<div class="parent">
<div class="child"></div>
</div>
</div>
</div>
答案 4 :(得分:0)
父节点的子节点的子节点不是其祖父节点的子节点, 但他们是祖父母的后代节点。
当您在xpath中使用轴来查找节点时,这一点变得更加重要。
并非所有html都符合xml标准。但它正朝这个方向发展 并且您可以在脚本标记中使用xpath来查找html节点 因此,重要的是要注意后代和孩子之间的区别。
大多数使用xpath的关系使用&#39; descendent&#39;而不是孩子&#39;, 它严格地说是上下文节点的直接子节点。