问题很简单,但让我感到困惑的是,当我使用 console.log(document.body) 或 (document.head) 时它们都工作正常,但是当我使用 document.script 或 document.html 时,这两个不起作用,为什么?虽然所有这些东西都在文档中?
Q2)我会写
document.getElementById('something')
但是为什么我不会写
document.body.getElementById('something')
虽然 body 在 document 中,元素也在 body 标签中,但有时 document.body 在脚本的不同阶段工作
最佳答案
getElementById
是 document
上的一个方法,它是一个使用 Document
的对象来自DOM的界面。它不是元素上的方法(来自 DOM 的 Element
接口(interface)及其专门化来自 HTML 的 HTMLElement
接口(interface))。 document.body
是一个元素(一个HTMLBodyElement
,它是一个HTMLElement
,它是一个Element
),不是一份文件。
有些方法(如 querySelector
)是both document
和 元素的方法,因为它对它们是(在一个元素上,querySelector
只在元素内查找,而不是在整个文档中查找)。但是 getElementById
不是。 (可能是,但是当 ID 在整个文档中是唯一的时,将其范围限定为一个元素会有点奇怪。)
关于javascript - 文档对象模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41725598/