document对象

# 什么是DOM

Document Object Model,文档对象模型。DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。目的其实就是为了能让js操作html元素而制定的一个规范。

  • 当浏览器载入 HTML 文档, 它就会成为 Document 对象。
  • Document 对象是 HTML 文档的根节点。
  • Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。

提示:Document 对象是 Window 对象的一部分,可通过 window.document 属性对其进行访问。

document 构造函数 -> HTMLDocument
HTMLDocument 构造函数 -> Document

document.__proto__ = HTMLDocument.prototype
HTMLDocument.__proto__ = Document.prototype

最终:
document 》HTMLDocument 》Document 》Node 》 EventTarget 》 Object

# 获取元素的方法

// 获取元素的方法
getElementById()  //  返回单个元素

getElementsByTagName()  //  返回一组元素,类数组
getElementsByTagName('*')  //  获取所有的元素


getElementsByClassName() // 返回一组元素,类数组 IE8及以下不支持
getElementsByName()  // 返回一组元素,类数组. 很少用

querySelector(参数为CSS选择器一样)  // 返回单个元素
querySelectorAll(参数为CSS选择器一样)  //  返回一组元素,类数组 
// 缺点: 1、性能比getElement 系列慢; 2、不实时,有缓存片段

# 其他常用方法

document.createDocumentFragment() // 创建文档碎片
document.createElement()  // 创建元素节点
document.createComment() // 创建注释节点
document.createTextNode() // 创建文本节点
document.open() // 打开一个流
document.write() // 向文档写 HTML 表达式 或 JavaScript 代码。
document.close() // 关闭用 document.open() 方法打开的输出流,并显示选定的数据。

# 文档碎片

// document.createDocumentFragment(); 创建文档片段(碎片), 不在DOM树中,只存在内存中
var oUl = document.getElementById('list');
var oFrag = document.createDocumentFragment();
for(var i = 0; i < 10000; i++) {
    var oLi = document.createElement('li');
    oLi.innerHTML = i + '、这是第' + i + '个项目';
    oLi.className = 'list-item';
    oFrag.appendChild(oLi);
}
oUl.appendChild(oFrag);
Last Updated: 12/14/2020, 10:03:53 AM