3.3 DOM简介
DOM的全称是文档对象模型(即Document Object Model),它在本质上是一种文档平台。文档对象模型(DOM)是表示文档(比如HTML和XML)和访问、操作构成文档的各种元素的应用程序接口(API)。支持Javascript的所有浏览器都支持DOM。DOM实际上是一个能够让程序和脚本动态访问和更新文档内容、结构和样式的一种语言平台。
本书中所涉及的DOM,是指W3C定义的标准的文档对象模型,它以树形结构表示HTML和XML文档,定义了遍历这个树和检查、修改树的节点的方法和属性。在实际应用中,DOM一般被分为不同的部分(核心,XML和HTML),它们分别对应着不同的版本(DOM 1/2/3)。
· Core DOM:定义了任意结构文档的标准对象集合;
· XML DOM:定义了针对XML文档的标准对象集合;
· HTML DOM:定义了针对HTML文档的标准对象集合。
为了让读者逐步接受有关DOM与HTML以及XML之间相关的操作,本节先简单介绍一下DOM的基本功能和意义,在本书第五章中将详细介绍结合HTML文档以及XML文档相关的具体操作方法。
HTML DOM是针对HTML的文档对象模型,它定义了针对HTML的标准对象集合以及访问和操作HTML文档的方法。在HTML DOM中,HTML跟XML一样是一种树形结构的文档,可以作为一个对象的集合来使用,这些对象有属性和方法,同时也可以对事件做出反应,调用对应的函数进行处理。 <html>是根(root)节点,<head>、<body>是<html>的子(children)节点,互相之间是兄弟(sibling)节点;<body>下面还包含有子节点<table>、<span>、<p>等。
在HTML文档的树形结构中主要包含表示元素、标记的节点和表示文本串的节点。对应的HTML的树形结构图3-24如下所示。

图3-24 HTML的树形结构图
常用的HTML DOM中对应对象的功能如下所示。
· window对象:代表一个浏览器窗口的对象;
· navigator:可提供当前所使用浏览器的版本号,运行的平台以及浏览器使用的语言等信息;
· document对象:含有当前网页的各种特性,例如标题、背景以及使用的语言等等;
· location对象:含有当前网页的URL地址;
· history对象:含有以前访问过的网页的URL地址;
· form对象:表单对象代表一个HTML表单。HTML中一有<form>标签,一个表单对象就被建立了;
· anchors对象:锚对象代表一个HTML超级链接。HTML文档中有<a>标签,一个锚对象就随之建立了;
· links对象:是从属于浏览器对象document的一个数组,为处理超级连接提供属性和方法,每一个超级链接就是这个数组中的一个元素。
在浏览器中定位HTML文档中的某一个对象就是依据DOM提供的方式,即一种树型遍历、逐级定位的方式。例如,在前面所举的例子中,我们注意到如果要取出页面中某一个文本框的值,其基本格式为:
documen.表单名.文本框名.value
其中document一般可以省略不写,这种表示形式就像我们在资源管理器中描述一个文件的位置和名称时,会从对应盘符逐步定位到一级子文件夹、二级子文件夹直至定位到文件所在的文件夹,最终依据文件的文件名获得文件的内容。浏览器对象定位的层次结构与文件系统的资源管理是类似的。下面再给出一些示例。







