HTML DOM 简介
HTML 文档对象模型(HTML Document Object Model)定义了访问和处理 HTML 文档的标准方法。通过 JavaScript,您可以重构整个 HTML 文档。您可以添加、移除、改变或重排页面上的项目。
要改变页面的某个东西,JavaScript 就需要获得对 HTML 文档中所有元素进行访问的入口。这个入口,连同对 HTML元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的(DOM)。
DOM 可被 JavaScript 用来读取、改变 HTML、XHTML 以及 XML 文档。
DOM 被分为不同的部分(核心、XML及HTML)和级别(DOM Level 1/2/3):
Core DOM:定义了一套标准的针对任何结构化文档的对象
XML DOM:定义了一套标准的针对 XML 文档的对象
HTML DOM:定义了一套标准的针对 HTML 文档的对象。
HTML DOM 节点
HTML 文档中的每个成分都是一个节点。DOM 是这样规定的:
整个文档是一个文档节点;
每个 HTML 标签是一个元素节点;
包含在 HTML 元素中的文本是文本节点;
每一个 HTML 属性是一个属性节点;
注释属于注释节点。
一棵节点树中的所有节点彼此都是有关系的:父节点,子节点,同辈,后代,先辈。
HTML DOM 访问节点
查找并访问节点:通过使用 getElementById() 和 getElementsByTagName() 方法
通过使用一个元素节点的 parentNode、firstChild 以及 lastChild 属性
节点列表(nodeList):当我们使用节点列表时,通常要把此列表保存在一个变量中。
有两种特殊的文档属性可用来访问根节点:
document.documentElement:返回存在于 XML 以及 HTML 文档中的文档根节点。
document.body:对 HTML 页面的特殊扩展,提供了对 <body> 标签的直接访问。
HTML DOM 节点信息
每个节点都拥有包含着关于节点某些信息的属性。这些属性是:nodeName(节点名称)
nodeValue(节点值)
nodeType(节点类型)
nodeName
nodeName 属性含有某个节点的名称。
元素节点的 nodeName 是标签名称;
属性节点的 nodeName 是属性名称;
文本节点的 nodeName 永远是 #text;
文档节点的 nodeName 永远是 #document。
nodeValue
对于文本节点,nodeValue 属性包含文本。
对于属性节点,nodeValue 属性包含属性值。
nodeType
nodeType 属性可返回节点的类型。
最重要的节点类型是:元素 1;属性 2;文本 3;注释 8;文档 9。