- 1 概述
- 2 快捷属性
- 3 节点集合属性
- 4 文档静态信息属性
- 5 文档状态属性
- 6 方法
- 6.1 document.querySelector()
- 6.2 document.querySelectorAll()
- 6.3 document.getElementsByTagName()
- 6.4 document.getElementsByClassName()
- 6.5 document.getElementsByName()
- 6.6 document.getElementById()
- 6.7 document.createElement()
- 6.8 document.createTextNode()
- 6.9 document.createAttribute()
- 6.12 document.createEvent()
- 6.13 document.addEventListener() document.removeEventListener() document.dispatchEvent()
1 概述
- document 节点对象代表整个文档
- 获取方式:
- document 或window.document
- iframe框架中,使用
contentDocument
属性 - 内部节点的
ownerDocument
属性
document 对象继承了
EventTarget
接口和Node
接口,并混入ParentNode
接口2 快捷属性
2.1 document.defaultView
返回document对象所属的window对象
-
2.2 document.doctype
document
对象一般有两个子节点,第一个子节点是document.doctype
2.3 document.documentElement
返回当前文档的根元素节点(root)
- 通常是
document
的第二个节点,紧跟在document.doctype
节点后面 -
2.4 document.body 和document.head
document.body指向节点
-
2.5 document.scrollingElement
f返回文档的滚动元素
标准模式下,返回
document.documentElement
;兼容模式下,返回body标签// 页面滚动到浏览器顶部
document.scrollingElement.scrollTop = 0;
2.6 document.activeElement
返回获得当前焦点的DOM元素,比如:input,textarea等
-
2.7 document.fullscreenElement
返回当前全屏展示的DOM元素
如果没有则返回null
if (document.fullscreenElement.nodeName == 'VIEDEO'){
console.log("全屏播放");
}
3 节点集合属性
3.1 document.links
-
3.2 document.images
-
3.3 document.forms
-
3.4 document.scripts
-
3.5 document.styleSheets
返回网页内嵌入或引入的CSS样式表StyleSheetList实例
4 文档静态信息属性
4.1 document.documentURI和document.URL
两个属性都返回一个字符串,表示当前文档的网址
documentURI
继承自Document接口,用于所有文档-
4.2 document.domain
该属性返回文档的域名,不包含协议和端口
-
4.3 document.location
Location
对象是浏览器提供的原生对象-
4.4 document.lastModified
-
4.5 document.title
4.6 document.characterSet
4.7 document.referrer
返回一个字符串,表示当前文档的访问者来自哪里
document.referrer的值,和HTTP头信息的Referer字段保持一致
4.8 document.dir
-
4.9 document.compatMode
返回浏览器处理文档的模式;
可能取值为:
BackCompat
和CSS1Compat
(严格模式)5 文档状态属性
5.1 document.hidden
返回一个布尔值,表示当前页面是否可见
如果窗口最小化、浏览器切换了Tab,都会导致页面不可见,使得
document.hidden
返回true5.2 document.visibilityState
返回文档的可见状态
- visible: 页面可见
- hidden: 页面不可见
- prerender: 页面处于正在渲染 状态,对用户来说该页面不可见
- unloaded: 页面从内存中卸载
5.3 document.readyState
- 该属性返回当前文档的状态:
-
6 方法
6.1 document.querySelector()
方法接收一个CSS选择器作为参数,返回匹配该选择器的元素节点
- 如果有多个节点满足匹配条件,则返回第一个匹配的节点
- 如果没有匹配的节点,则返回null
-
6.2 document.querySelectorAll()
返回一个
NodeList
对象,包含所有匹配给定选择器的节点- 参数可以用逗号分隔多个CSS选择器
- 参数是*,返回文档中所有元素节点
- 返回的结果不是动态集合,不会实时反映元素节点的变化
- 该方法不仅定义在document上,在元素节点上也可以调用
-
6.3 document.getElementsByTagName()
返回符合条件的HTML标签的元素集合
- 返回值是类数组对象,是
HTMLCollection
实例 该方法不仅定义在document上,也可以在元素节点上调用该方法
6.4 document.getElementsByClassName()
返回一个类数组的对象(HTMLCollection实例)
- 包含了所有class 名字符合指定条件的元素
该方法不仅在document上,也可以在元素节点上调用该方法
6.5 document.getElementsByName()
选择拥有name属性的HTML元素
-
6.6 document.getElementById()
-
6.7 document.createElement()
-
6.8 document.createTextNode()
-
6.9 document.createAttribute()
生成一个新的属性节点(Attr实例),并返回它
var attribute = document.createAttruibute(name);
参数是name,是属性的名称 ```javascript var node = document.getElementById(“div1”);
var a = document.createAttribute(“my_attr”); a.value = “val”;
node.setAttributeNode(a);
// 或者 node.setAttribute(“my_attr”,”val”);
<a name="l2A2M"></a>
### 6.10 document.createComment()
<a name="VVFcS"></a>
### 6.11 document.createDocumentFragment()
1. 该方法生成一个空的文档片段对象(DocumentFragment实例)
1. DocumentFragment是一个存在于内存的DOM片段,不属于当前文档,常用来生成一段复杂的DOM结构,然后在插入当前文档
```javascript
var docfrag = document.createDocumentFragment();
[1,23,3,4].forEach(function(num){
var li = document.createElement("li");
li.textContent = e;
docfrag.appendChild(li);
});
var element = document.getElementById("ul");
element.appendChild(docfrag);