代码改变世界

Document Object Model :DOM的组成

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

 

DOM的组成

  1. DOM的数据类型、错误处理
  2. DOM节点的类型、DOM接口继承树
  3. DOM文档处理

DOM表示一个树型结构的文档,可以把DOM文档树看作是各个子树的集合。文档中的每一个事物都可以表示为一个结点。

DOM的数据类型

每个编程接口都有基本的、原子的数据类型,它们是编程接口内部工作方式所必须的,DOM也是如此。从DOM Level 2开始,规范使用的基本数据类型是DOMString和DOmTimeStamp类型。它们在特定语言中绑定的数据类型可能不同。

DOMString
DOMString类型用来描述一个字符序列,其中每个字符都表示为16位的单元。根据DOM规范,DOMString使用UTF-16进行编码。
IDL 定义:
valuetype DOMString sequence;
DOMTimeStamp
DOMTimeStamp是DOM Level 2中定义的用于表示时间毫秒值的数据类型。
IDL 定义:
typedef unsigned long long DOMTimeStamp; 

DOM的错误处理

当错误使用或在不适合的环境中使用某个 DOM 属性或方法时,就会抛出一个 DOMException 对象。code 属性的值说明了发生的异常的一般类型。注意,读写对象的属性或调用对象的方法时,都有可能抛出 DOMException 对象。

DOMException
DOM实现使用DOMException来报告错误发生的条件。
DOMException接口只有一个属性code,code属性的值说明了发生异常的一般类型。
DOMException常量释义:
下面的常量定义了 DOMException 对象的 code 属性的合法值
INDEX_SIZE_ERR
说明数组或字符串下标的溢出错误。
DOMSTRING_SIZE_ERR
说明请求的文本太大,文本的指定范围不适合 DOMString。
HIERARCHY_REQUEST_ERR
说明发生了要把节点放在文档树层次中的不合法位置的操作。
WRONG_DOCUMENT_ERR
说明发生了从创建节点的文档以外的文档使用使用该节点的操作。
INVALID_CHARACTER_ERR
说明(比如在元素名中)使用了不合法的字符。
NO_DATA_ALLOWED_ERR
为不支持数据的 Node 指定数据。
NO_MODIFICATION_ALLOWED_ERR
说明发生了修改只读的、不允许修改的节点的操作。
NOT_FOUND_ERR
说明在期望的位置没有找到指定的节点
NOT_SUPPORTED_ERR
说明当前的 DOM 实现不支持某个属性或方法。
INUSE_ATTRIBUTE_ERR
说明在一个 Attr 节点已经关联到另一个 Element 节点时,
发生了把一个 Attr 节点关联到另一个 Element 节点的操作。
INVALID_STATE_ERR
说明使用了处于不允许使用状态或不再允许使用状态的对象。
SYNTAX_ERR
说明指定的错误含有语法错误。通常由 CSS 属性声明使用。
INVALID_MODIFICATION_ERR
说明发生了修改 CSSRule 对象或 CSSValue 对象的操作。
NAMESPACE_ERR
说明有涉及元素或属性的命名空间的错误。
INVALID_ACCESS_ERR
说明以一种当前的实现不支持的方法访问对象。

DOM节点的类型

节点是DOM的一个基本概念,文档中的每个事物都是节点。DOM Node接口包含基本结点操作所需要的全部方法和属性。所有的节点都是从Node接口继承的。

DOM接口继承树

module dom

  • DOMImplementation
  • Node
    • CharacterData
      • Text
        • CDATASection
      • Comment
    • Attr
    • Element
    • Notation
    • Entity
    • EntityReference
    • ProcessingInstruction
    • DocumentFragment
  • NodeList
  • NamedNodeMap

DOM文档处理

DOM包含DOM文档和对文档的处理。DOM文档由各种类型的节点组成,或者说DOM由节点组成的子树组成DOM树型结构。DOM的操作是由节点到节点:由根节点或当前节点出发,导航到要处理的节点,进行处理。

DOM的接口包含属性和方法,除了一些全局性的属性和方法外,属性和方法的作用都是两个:导航和处理。

导航有两种:一种是直接导航到目标节点,另一种是先获取包含目标节点的节点集合,在从集合中取得目标节点,间接导航到节点

处理有两种:一种是创建新节点,一种是更新节点树,包括添加节点、删除节点、替换节点。