Javascript 为什么;文件标题「;而不是",;文件.标题.标题“;?RE:遍历DOM

Javascript 为什么;文件标题「;而不是",;文件.标题.标题“;?RE:遍历DOM,javascript,dom,properties,Javascript,Dom,Properties,我刚刚开始学习客户端JavaScript和使用在线教程,请耐心听我说 这个问题基于我对以下内容的理解: 要访问文档正文的属性,语法是“document.body”,它返回正文中的所有元素 同样,当您访问head时,使用“document.head”。这是有道理的,最重要的是,它起作用了 然而,当我尝试按照相同的逻辑访问身体或头部中的元素时,我会得到一个返回值“undefined”。例如,document.body.h1返回“undefined”,尽管body元素中有h1元素 此外,当我输入doc

我刚刚开始学习客户端JavaScript和使用在线教程,请耐心听我说

这个问题基于我对以下内容的理解:

要访问文档正文的属性,语法是“document.body”,它返回正文中的所有元素

同样,当您访问head时,使用“document.head”。这是有道理的,最重要的是,它起作用了

然而,当我尝试按照相同的逻辑访问身体或头部中的元素时,我会得到一个返回值“undefined”。例如,document.body.h1返回“undefined”,尽管body元素中有h1元素

此外,当我输入document.head.title--“undefined”时

然而,奇怪的是,当我输入“document.title”时,它返回与title标记关联的字符串值

我认为为了访问标题,您必须通过头部访问它,因为它是嵌套在头部中的元素。但好吧,没关系。使用相同的逻辑,我应该能够输入document.h1并获取其值。不,相反,我没有定义


请有人给我解释一下为什么这种行为如此不一致。提前感谢。

您确实提出了两个问题:

  • 为什么是
    document.title
    而不是
    document.head.title
  • 如果
    body
    中有
    h1
    ,为什么
    document.body.h1
    不返回元素
  • document.title
    文档。标题
    是历史记录。浏览器环境的各个部分在20世纪90年代由多个不同的人/组织专门开发。:-)这就是说,它是文档的标题,因此这不是一个不合理的位置,即使您在
    标题中使用
    标题
    标记

    document.body.h1
    一个答案是:因为没有人决定这样设计。有一些早期的东西,比如
    document.all
    (文档中所有元素的列表),甚至还有标记特定的元素(我完全忘了它们是什么,但它们离
    document.body.h1
    -我想
    document.tags.h1
    或者其他什么东西,这里又是一个列表。)

    但另一个答案是:因为DOM是一棵树
    body
    可以有多个
    h1
    元素,既可以是直接子元素,也可以是子元素的子元素(或更深层);总的来说,后代。事实证明,使用所有这些创建自动列表无法扩展到大型文档

    相反,您可以通过多种方法查询DOM(整个文档,或仅查询特定元素的内容):

    • -(就在
      document
      上)使用元素的
      id
      属性值获取元素
    • -查找与CSS选择器匹配的第一个元素(可以在
      文档上或元素上使用它)。如果没有匹配项,则返回
      null
    • -获取与CSS选择器匹配的所有元素的列表(可以在
      文档
      或元素上使用它)。你可以指望得到一份清单;当然,它的
      长度可能是
      0
    • -获取具有给定标记名的所有元素的列表(例如
      “h1”
    • -(IE8及更早版本中不支持)获取具有给定类的所有元素的列表
    还有很多。有关详细信息,请参阅和/或


    一些自动列表仍然存在(它们的用途太多,必须维护/保留),例如和实例上的属性、实例上的属性以及其他各种属性。

    您确实提出了两个问题:

  • 为什么是
    document.title
    而不是
    document.head.title
  • 如果
    body
    中有
    h1
    ,为什么
    document.body.h1
    不返回元素
  • document.title
    文档。标题
    是历史记录。浏览器环境的各个部分在20世纪90年代由多个不同的人/组织专门开发。:-)这就是说,它是文档的标题,因此这不是一个不合理的位置,即使您在
    标题中使用
    标题
    标记

    document.body.h1
    一个答案是:因为没有人决定这样设计。有一些早期的东西,比如
    document.all
    (文档中所有元素的列表),甚至还有标记特定的元素(我完全忘了它们是什么,但它们离
    document.body.h1
    -我想
    document.tags.h1
    或者其他什么东西,这里又是一个列表。)

    但另一个答案是:因为DOM是一棵树
    body
    可以有多个
    h1
    元素,既可以是直接子元素,也可以是子元素的子元素(或更深层);总的来说,后代。事实证明,使用所有这些创建自动列表无法扩展到大型文档

    相反,您可以通过多种方法查询DOM(整个文档,或仅查询特定元素的内容):

    • -(就在
      document
      上)使用元素的
      id
      属性值获取元素
    • -查找与CSS选择器匹配的第一个元素(可以在
      文档上或元素上使用它)。如果没有匹配项,则返回
      null
    • -获取与CSS选择器匹配的所有元素的列表(可以在
      文档
      或元素上使用它)。你可以指望得到一份清单;当然,它的
      长度可能是
      0
    • -获取具有给定标记名的所有元素的列表(例如
      “h1”
    • -(IE8及更早版本中不支持)获取具有给定类的所有元素的列表
    还有很多。有关m,请参阅和/或