javascript基础学习系列五百四十三:DOM2 和DOM3

本文详细讲述了DOM2和DOM3的发展,包括DOMCore、DOMViews、DOMEvents等模块的扩展,以及XML命名空间在混用不同XML语言中的作用。重点介绍了如何处理命名空间问题,如元素归属和方法的命名空间版本.
摘要由CSDN通过智能技术生成

本章内容
 DOM2 到DOM3 的变化
 操作样式的DOM API
 DOM 遍历与范围
DOM1(DOM Level 1)主要定义了HTML 和XML 文档的底层结构。DOM2(DOM Level 2)和
DOM3(DOM Level 3)在这些结构之上加入更多交互能力,提供了更高级的XML 特性。实际上,DOM2
和DOM3 是按照模块化的思路来制定标准的,每个模块之间有一定关联,但分别针对某个DOM子集。
这些模式如下所示。
 DOM Core:在DOM1 核心部分的基础上,为节点增加方法和属性。
 DOM Views:定义基于样式信息的不同视图。
 DOM Events:定义通过事件实现DOM文档交互。
 DOM Style:定义以编程方式访问和修改CSS 样式的接口。
 DOM Traversal and Range:新增遍历DOM文档及选择文档内容的接口。
 DOM HTML:在DOM1 HTML 部分的基础上,增加属性、方法和新接口。
 DOM Mutation Observers:定义基于DOM变化触发回调的接口。这个模块是DOM4 级模块,
用于取代Mutation Events。
DOM 的演进
DOM2 和DOM3 Core 模块的目标是扩展DOM API,满足XML 的所有需求并提供更好的错误处理
和特性检测。很大程度上,这意味着支持XML 命名空间的概念。DOM2 Core 没有新增任何类型,仅仅
在DOM1 Core 基础上增加了一些方法和属性。DOM3 Core 则除了增强原有类型,也新增了一些新类型。
类似地,DOM View 和HTML 模块也丰富了DOM 接口,定义了新的属性和方法。这两个模块很小,因此本章将在讨论JavaScript 对象的基本变化时将它们与Core 模块放在一起讨论。
XML 命名空间
XML 命名空间可以实现在一个格式规范的文档中混用不同的XML 语言,而不必担心元素命名冲
突。严格来讲,XML 命名空间在XHTML 中才支持,HTML 并不支持。因此,本节的示例使用XHTML。
命名空间是使用xmlns 指定的。XHTML 的命名空间是"http://www.w3.org/1999/xhtml",应
该包含在任何格式规范的XHTML 页面的元素中,如下所示:

Example XHTML page Hello world! 对这个例子来说,所有元素都默认属于XHTML 命名空间。可以使用xmlns 给命名空间创建一个 前缀,格式为“xmlns: 前缀”,如下面的例子所示: Example XHTML page Hello world! 这里为XHTML 命名空间定义了一个前缀xhtml,同时所有XHTML 元素都必须加上这个前缀。为 避免混淆,属性也可以加上命名空间前缀,比如: Example XHTML page Hello world! 这里的class 属性被加上了xhtml 前缀。如果文档中只使用一种XML 语言,那么命名空间前缀 其实是多余的,只有一个文档混合使用多种XML 语言时才有必要。比如下面这个文档就使用了XHTML 和SVG 两种语言: Example XHTML page 在这个例子中,通过给 元素设置自己的命名空间,将其标识为当前文档的外来元素。这样一 来, 元素及其属性,包括它的所有后代都会被认为属于"https://www.w3.org/2000/svg"命 名空间。虽然这个文档从技术角度讲是XHTML 文档,但由于使用了命名空间,其中包含的SVG 代码 也是有效的。 对于这样的文档,如果调用某个方法与节点交互,就会出现一个问题。比如,创建了一个新元素, 那这个元素属于哪个命名空间?查询特定标签名时,结果中应该包含哪个命名空间下的元素?DOM2 Core 为解决这些问题,给大部分DOM1 方法提供了特定于命名空间的版本。
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值