代码改变世界

Document Object Model :DOM的接口——DOM Core接口

2010-09-23 16:45  Register  阅读(312)  评论(0)    收藏  举报

DOM的接口

  1. DOM Core接口
  2. DOM HTML接口

DOM Core接口

DOM COre接口可以归类为基础接口和扩展接口,基础接口是处理包含HTML和XML内容的文档相关部分的接口,扩充接口是处理XML特有文档结构元素所必须的接口。

DOM接口有4个顶级接口,其中DOMImplementation接口主要针对整个文档;Node接口和两个辅助接口:NodeList、NamedNodeMap用来导航和处理文档节点。其他的接口都从Node接口继承。

基础接口

interface DOMImplementation
DOMImplementation接口意在提供独立于任何特定文档实例的方法。DOM Level 1没有指定获得DOMImplementation 接口的方法,而是把它作为一个独立于实现的操作留下来。
在浏览器中,通过Document 对象的 implementation 属性获得对 DomImplementation 对象的引用。
在DOM Level 1中DOMImplementation只含有一个方法hasFeature()用来确定DOM中特定的接口是否可用。
在DOM Level 2中,添加了createDocument()和createDocumentType()来创建新文档,但仅适用于XML文档。
interface Node
节点是DOM的一个基本概念,文档中的每个事物都是节点。DOM Node接口包含基本结点操作所需要的全部方法和属性。所有的节点都是从Node接口继承的。

Node接口提供的节点导航:

1. 直接导航到节点

DOM1:
readonly attribute: parentNode、 childNodes、 firstChild、 lastChild、 previousSibling、 nextSibling
DOM2:
readonly attribute:(Document)ownerDocument

2. 间接导航到节点

DOM1:
readonly attribute : (NodeList)childNodes、(NamedNodeMap)attributes
DOM2

3. 导航到Node的属性

DOM1:
readonly attribute: nodeName、 (unsigned short)nodeType
attribute: nodeValue
DOM2:
readonly attribute: namespaceURI、localName、baseURI
attribute:prefix

4. 其他用于导航属性和方法、浏览器的私有属性和方法

function:
DOM1: boolean hasChildNodes();
DOM2: boolean isSupported()、boolean hasAttributes()
IE:attribute:text、xml

Node接口提供的节点处理

1. 创建节点

2. 更新节点

DOM1:
添加节点: insertBefore()、appendChild()
删除节点: removeChild()
替换节点: replaceChild()
复制节点: cloneNode()

3. 更新Node的属性

attribute:
DOM1:nodeValue、prefix

4.其他更新文档的属性和方法、浏览器的私有属性和方法

function:
DOM2:void normalize()
interface NodeList
节点辅助程序接口NodeList 代表一个有顺序的节点列表,节点在列表中的顺序与它们在 XML 被规定的顺序相同。
节点列表可保持其自身的更新。如果节点列表或文档中的某个元素被删除或添加,列表也会被自动更新。

NodeList接口提供的节点导航:

1. 直接导航到节点

DOM1:
function:Node item()

2.导航到NodeList的属性:

readonly attribute:
DOM1: (unsigned long)length;
interface NamedNodeMap
节点辅助程序接口NamedNodeMap 表示一个无顺序的节点列表,可通过节点名称来访问 NamedNodeMap 中的节点。
NamedNodeMap 可保持其自身的更新。

NodeList接口提供的节点导航:

1. 直接导航到节点

DOM1:
function: Node getNamedItem()、Node item()
DOM2:
function: Node getNamedItemNS()

2.导航到NamedNodeMap的属性

readonly attribute:
DOM1: (unsigned long)length;

Node接口提供的节点处理

1.更新节点

DOM1:
添加节点: Node setNamedItem()
删除节点: Node removeNamedItem()
DOM2:
添加节点: Node setNamedItemNS()
删除节点: Node removeNamedItemNS()

以下接口都继承自DOM Node接口。文档接口:Document ,片段接口:DocumentFragment,元素接口:Element,属性接口:Attr,字符数据接口:CharacterData,继承自CharacterData的两个接口:注释接口:Comment 、文本接口:Text。

interface Document
1. Document 是一棵文档树的根,可为我们提供对文档数据的最初(或最顶层)的访问入口。
2. 用于元素节点、文本节点、注释、处理指令等均无法存在于 document 之外,document 同样提供了创建这些对象的方法。Node 接口提供了一个 ownerDocument 属性,此属性可把它们与在其中创建它们的 Document 关联起来。
interface DocumentFragment
1. DocumentFragment可以提取文档的一部分并处理它们。
2. DocumentFragment由零个或多个表示子树的子结点组成。
3. DocumentFragment除了从Node接口继承的属性和方法外,不包含任何属性和方法。
interface Element
interface Attr
interface CharacterData
interface Comment
interface Text

扩展接口

Extended Core接口可以专门处理除基本Core接口之外的XML文档,当处理纯粹的HTML文档时,不会用到这些接口,这些接口是非强制实现的。