文档对象模型

Has*_*ani 1 javascript document

问题很简单,但令我感到困惑的是,当我的console.log(document.body)或(document.head)都工作正常但是当我使用document.script或document.html这两个不工作时为什么?虽然所有这些都在文件中?

Q2)我可以写

document.getElementById('something')
Run Code Online (Sandbox Code Playgroud)

但为什么我不能写

document.body.getElementById('something')
Run Code Online (Sandbox Code Playgroud)

虽然body也在body标签中的文档和元素中,但有时document.body在脚本的不同阶段工作

T.J*_*der 6

getElementById是一个方法on document,它是一个使用DocumentDOM接口的对象.它不是元素上的方法(Element来自DOM的HTMLElement接口及其专门化来自HTML 的接口).document.body是一个元素(一个HTMLBodyElement,它是一个HTMLElement,是一个Element),而不是一个文档.

一些方法(比如querySelector)是两者 document 元素上的方法,因为它们是有意义的(在元素上,querySelector只在元素内查找,而不是在整个文档中).但getElementById事实并非如此.(可能是这样,但是如果ID在整个文档中是唯一的,那么将它作为一个元素的范围将会有点奇怪.)