JS DOM(文档对象模型)
当网页加载时,浏览器就会自动创建当前页面的文档对象模型(DOM)。在 DOM 中,文档的所有部分(例如元素、属性、文本等)都会被组织成一个逻辑树结构(类似于族谱),树中每一个分支的终点称为一个节点,每个节点都是一个对象,如下图所示:

图1:DOM 树
借助 DOM 您可以使用 JavaScript 来访问、修改、删除或添加 HTML 文档中的任何内容。
Document 对象
当浏览器加载一个 HTML 文档时,会创建一个 Document 对象,Document 对象是 DOM 树中所有节点的根节点。通过 Document 对象我们可以访问 HTML 文档中的所有元素。提示:Document 对象是 Window 对象的一部分,所以您可以通过 window.document 来访问 Document 对象。
Document 对象中的属性
下表中列举了 Document 对象中提供的属性及其描述:属性 | 描述 |
|---|---|
document.activeElement | 返回当前获取焦点的元素 |
document.anchors | 返回对文档中所有 Anchor 对象的引用 |
document.applets | 返回对文档中所有 Applet 对象的引用。注意: HTML5 已不支持 <applet> 元素 |
document.baseURI | 返回文档的基础 URI |
document.body | 返回文档的 body 元素 |
document.cookie | 设置或返回与当前文档有关的所有 cookie |
document.doctype | 返回与文档相关的文档类型声明 (DTD) |
document.documentElement | 返回文档的根节点 |
document.documentMode | 返回浏览器渲染文档的模式 |
document.documentURI | 设置或返回文档的位置 |
document.domain | 返回当前文档的域名 |
document.domConfig | 已废弃,返回 normalizeDocument() 被调用时所使用的配置 |
document.embeds | 返回文档中所有嵌入内容(embed)的 |
document.forms | 返回文档中所有 Form 对象的引用 |
document.images | 返回文档中所有 Image 对象的引用 |
document.implementation | 返回处理该文档的 DOMImplementation 对象 |
document.inputEncoding | 返回文档的编码方式 |
document.lastModified | 返回文档的修改日期 |
document.links | 返回对文档中所有 Area 和 Link 对象的引用 |
document.readyState | 返回文档状态(载入中) |
document.referrer | 返回载入当前文档的 URL |
document.scripts | 返回页面中所有脚本的 |
document.strictErrorChecking | 设置或返回是否强制进行错误检查 |
document.title | 返回当前文档的标题 |
document.URL | 返回文档的完整 URL |
Document 对象中的方法
下表中列举了 Document 对象中提供的方法及其描述:方法 | 描述 |
|---|---|
document.addEventListener() | 向文档中添加事件 |
document.adoptNode(node) | 从另外一个文档返回 adapded 节点到当前文档 |
document.close() | 关闭使用 document.open() 方法打开的输出流,并显示选定的数据 |
document.createAttribute() | 为指定标签添加一个属性节点 |
document.createComment() | 创建一个注释节点 |
document.createDocumentFragment() | 创建空的 DocumentFragment 对象,并返回此对象 |
document.createElement() | 创建一个元素节点 |
document.createTextNode() | 创建一个文本节点 |
document.getElementyClassName() | 返回文档中所有具有指定类名的元素 |
document.getElementById() | 返回文档中具有指定 id 属性的元素 |
document.getElementyName() | 返回具有指定 name 属性的对象 |
document.getElementyTagName() | 返回具有指定标签名的对象 |
document.importNode() | 把一个节点从另一个文档到该文档以便应用 |
document.normalize() | 删除空文本节点,并并相邻的文本节点 |
document.normalizeDocument() | 删除空文本节点,并并相邻的节点 |
document.open() | 打开一个流,以收集来自 document.write() 或 document.writeln() 方法的输出 |
document.querySelector() | 返回文档中具有指定 CSS 选择器的个元素 |
document.querySelectorAll() | 返回文档中具有指定 CSS 选择器的所有元素 |
document.removeEventListener() | 移除文档中的事件句柄 |
document.renameNode() | 重名元素或者属性节点 |
document.write() | 向文档中写入某些内容 |
document.writeln() | 等同于 write() 方法,不同的是 writeln() 方在末尾输出一个换行符 |
示例代码如下:
运行上面的代码,点击页面的空白区域,即可输出如下图所示的内容:document.addEventListener("click", function(){
document.body.innerHTML = document.activeElement;
var box = document.createElement('div');
document.body.appendChild(box);
var att = document.createAttribute('id');
att.value = "myDiv";
document.getElementyTagName('div')[0].setAttributeNode(att);
document.getElementById("myDiv").innerHTML = Math.random();
var btn = document.createElement("button");
var t = document.createTextNode("按钮");
btn.appendChild(t);
document.body.appendChild(btn);
var att = document.createAttribute('onclick');
att.value = "myfunction()";
document.getElementyTagName('button')[0].setAttributeNode(att);
});
function myfunction(){
alert(document.title);
}

图:Document 对象演示
- 随机文章
- 马尔代夫鱼水中游(马尔代夫水下探秘:与海洋生物畅游)
- 沈阳 马尔代夫(沈阳旅客前往马尔代夫度假)
- 海底 马尔代夫(马尔代夫海底探秘)
- 马尔代夫鱼很多吗(马尔代夫海域鱼群繁盛,令人惊叹!)
- 马尔代夫风景最新(美丽马尔代夫:梦幻海岛风光盛况!)
- 亲子 马尔代夫(亲子游马尔代夫,度过难忘假期)
- 晚安 马尔代夫(睡前愉悦之旅,重返马尔代夫)
- 广西版纳马尔代夫(广西的版纳如何成为中国的马尔代夫?)
- 美签 马尔代夫(美国和马尔代夫签署新协定)
- 帕梅拉马尔代夫的(度假天堂:探索美丽的帕梅拉马尔代夫)
- 吉隆坡到马尔代夫(从吉隆坡到美丽的马尔代夫:旅行指南)
- 潢川马尔代夫淹死(潢川马尔代夫遭受洪水袭击致多人死亡)
- 科隆坡离马尔代夫(从科隆坡前往马尔代夫:最佳旅行方式)
- 清远马尔代夫简介(清远滨江马尔代夫:蓝天白沙绝美天堂)
- 眉山马尔代夫旅游(探寻眉山马尔代夫度假胜地的奇妙之旅)
- 茶陵马尔代夫图片(茶陵:精美马尔代夫风光照片令人惊艳)
- 飞鲸 马尔代夫(飞鲸推出马尔代夫专题,旅游新选择!)
- 白马马尔代夫婚礼(浪漫海岛盛典,白马马尔代夫梦幻婚礼)
- 辽宁旅游马尔代夫(辽宁游客在马尔代夫尽享海岛度假风光)
- 温婉马尔代夫旅游(温柔之旅:探索马尔代夫的美丽与魅力)
- 马尔代夫不带照片(马尔代夫旅游注意事项,助您拍出美照)
- 预订马尔代夫住宿(预订马尔代夫住宿,尽享海岛度假乐趣)
- 马尔代夫介绍小说(纯爱狂热!马尔代夫小说展现热带浪漫)
- 福建马尔代夫论坛(福建和马尔代夫互动交流论坛成功举办)
- 深潜 马尔代夫(深入探秘马尔代夫——深潜之旅)
- 钓鱼 马尔代夫(警惕!马尔代夫钓鱼骗局,提防上当受骗!)
- 马尔代夫亲身感受(亲身体验马尔代夫:一个梦幻度假胜地)
- 电信 马尔代夫(电信公司进军马尔代夫,开拓新市场)
- 马尔代夫出国必备(重要马尔代夫出国攻略,助你完美度假)
- 溧阳 马尔代夫(溧阳市举办马尔代夫文化主题活动,当地居民亲身感受海岛风情)
