问题很简单,但令我感到困惑的是,当我的console.log(document.body)或(document.head)都工作正常但是当我使用document.script或document.html这两个不工作时为什么?虽然所有这些都在文件中?
Q2)我可以写
document.getElementById('something')
但为什么我不能写
document.body.getElementById('something')
虽然body也在body标签中的文档和元素中,但有时document.body在脚本的不同阶段工作
getElementById
是一个方法on document
,它是一个使用Document
DOM接口的对象.它不是元素上的方法(Element
来自DOM的HTMLElement
接口及其专门化来自HTML 的接口).document.body
是一个元素(一个HTMLBodyElement
,它是一个HTMLElement
,是一个Element
),而不是一个文档.
一些方法(比如querySelector
)是两者 document
和元素上的方法,因为它们是有意义的(在元素上,querySelector
只在元素内查找,而不是在整个文档中).但getElementById
事实并非如此.(可能是这样,但是如果ID在整个文档中是唯一的,那么将它作为一个元素的范围将会有点奇怪.)