- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始学习客户端 JavaScript 并使用在线教程,所以请多多包涵。
这个问题是基于我对以下内容的理解:
要访问文档正文的属性,语法是“document.body”,它返回正文中的所有元素。
同样,当您访问头部时,您使用“document.head”。有道理,最重要的是,它有效。
但是,当我尝试按照相同的逻辑访问 body 或 head 中的元素时,我得到了“undefined”的返回值。例如,document.body.h1 返回“undefined”,尽管在 body 元素中有一个 h1 元素。
此外,当我输入 document.head.title 时——“未定义”。
然而,奇怪的是,当我输入“document.title”时,它返回与标题标签关联的字符串值。
我认为要访问标题,您必须通过 head 访问它,因为它是嵌套在 head 中的元素。但是好吧,没关系。使用相同的逻辑,我应该能够输入 document.h1 并获取它的值。不,相反,我得到了未定义。
有好心人向我解释一下为什么这种行为如此不一致。提前致谢。
最佳答案
你真的问了两个问题:
document.title
而不是 document.head.title
?和
body
中有 h1
,为什么 document.body.h1
不返回元素?文档.title
document.title
是历史性的。浏览器环境的各个部分是由 1990 年代多个不同的人/组织临时开发的。 :-) 也就是说,它是文档的标题,所以即使您在 head
中使用 title
标记,这也不是一个不合理的地方。
document.body.h1
一个答案是:因为没有人决定那样设计。 有一些早期的东西,比如 document.all
(文档中所有元素的列表),甚至还有特定于标签的东西(我忘了它们到底是什么,但它们不是距离你的 document.body.h1
一百万英里——我认为 document.tags.h1
或其他东西,它又是一个列表。)
但另一个答案是:因为 DOM 是一棵树。 body
可以有多个 h1
元素,既可以作为直接子元素也可以作为子元素的子元素(或更深层次的元素);统称为后代。使用所有这些创建自动列表被证明无法扩展到大型文档。
相反,您可以通过多种方法查询 DOM(整个文档或特定元素的内容):
getElementById
- (就在 document
上)使用其 id
属性值获取一个元素。querySelector
- 找到匹配 CSS 选择器的第一个元素(可以在 document
或元素上使用)。如果没有匹配项,则返回 null
。querySelectorAll
- 获取与 CSS 选择器匹配的所有元素的列表(可以在 document
或元素上使用)。您可以依靠取回列表;当然,它的长度
可能是0
。getElementsByTagName
- 获取具有给定标签名称(例如 "h1"
)的所有元素的列表。getElementsByClassName
-(IE8 及更早版本不支持)获取具有给定类的所有元素的列表。还有很多。参见 MDN's web documentation和/或 WHAT-WG DOM Standard了解更多。
一些自动列表仍然存在(它们被大量使用以至于必须维护/保留),例如 document.forms
, document.links
, rows
属性(property) HTMLTableElement
和 HTMLTableSectionElement
实例,cells
属性(property) HTMLTableRowElement
实例和其他各种实例。
关于javascript - 为什么是 "document.title"而不是 "document.head.title"?回复 : Traversing the DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50104620/
有什么方法可以覆盖无法直接编辑的页面标题,只能在页眉中添加 Javascript? 我不能直接编辑的行是: Title of the page 我能想到的解决这个问题的唯一方法是在我可以通过我的门户后
这是我的基础文件 {% load static %} {% include "feed/header.html" %} {% block content%} {% endblock %} {% inc
请说明 之间有什么区别标记和 标签。 Page title 如果两者都使用,哪个最优先? 我观察到一些网站同时具有 和 tags 和 两者相同,这是预期的,请确认? 如果我们不使用 标签标题,我
我有一个带有唯一title的表_primary,并且我有一个需要设置引用title的表_secondary > 对于 _primary 表。 最佳答案 尝试这个解决方案并让我知道它对您有用。 ALTE
我正在尝试学习使用 PDO 而不是 MySQLi 进行数据库访问,但我在从数据库中选择数据时遇到了问题。我想使用: $STH = $DBH->query('SELECT * FROM ratings
我了解 title 和 alt 属性的用途,但我只是不了解它们的最佳用途,或者我是否可以使用相同的 title /alt 不止一次。 例如,以一个关于狗的网站为例: 根据我的理解,所有 img 标签都
我分配了一个带有标题 (initWithTitle) 的 UITabBarItem 并将其连接到 UINavigationController。 我发现,如果导航 Controller 的 Root
我有标签栏和导航栏。在导航栏中我有表格 View 。问题是,当我在 IB 中将标题设置为选项卡栏,然后在 TableView 中设置标题时,选项卡栏标题将更改为 TableView 中的标题,并且我在
在我的 JSP 页面中,我使用 显示页面标题,有时可以,但有时页面显示无法cpmplie代码 。所以我将代码更改为 ${TITLE} ,也可以。 有什么不同和${TITLE}在jsp中? 这是我的页
我目前正在向 Jade 和 node.js 介绍自己 由于我想避免冗余,我想到将域名附加到当前标题,例如Blog | example.com 我的 Jade 模板得到了 Blog通过 Node.js
//Sorting userDefined object from ArrayList<>... import java.io.*; import java.util.*; class Song
我的网站有这两个元标记,它们目前具有相同的值: 第二个是 facebook 连接所需的格式。 这是否意味着第一个是多余的并且可以删除? 最佳答案 最好同时存在这两个标签。该标签告诉搜索引擎有
我现在对 ASP.NET MVC 的 Razor ViewEngine 感到困惑。 大多数人会说: View.Title 与相同 ViewData["Title"] 运行应用程序后我得到了这个 Com
UIViewController 的 title 属性的用途是什么,不能用 navigationItem.title 设置标题吗? 两者似乎都有效,我只是想知道为什么会有这种看似重复的功能。 最佳答案
我仍在学习如何将 API 数据与 react 和 nextjs 一起使用。但是,为什么我的函数只在我编写 {props.props.title} 而不是我期望的 {props.title} 时起作用?
我正在尝试编写一个从URL提取的正则表达式,但是问题是“。”与我们已经知道的不匹配换行符。如何编写正则表达式以匹配和提取pageTitle(。*?),但换行符可能介于 我在用grails。 最佳答案
我仍在学习如何将 API 数据与 react 和 nextjs 一起使用。但是,为什么我的函数只在我编写 {props.props.title} 而不是我期望的 {props.title} 时起作用?
我正在 github 上创建一个库,所以我为此使用了一个 Markdown 文件,其结构如下: # My main title ## My first section ... ## My second
我在某些地方看到,为了从 props 中获取 title 的值,我们使用 {`${props.title} `} 而在其他一些地方,我们使用它 {props.title} 有什么区别? 最佳答案 第一
我想使用 IMG 标签的 TITLE 属性,为图像创建标题: HTML CSS img[title]:after{content:attr(title);} 但是无论是在 IE、Firefox 还是
我是一名优秀的程序员,十分优秀!