第10章 DOM

DOM (文档对象模型)是针对 HTML 和 XML 文档的一个 API (应用程序编程接口)。 DOM 描绘了一个层次化的节点树,允许开发人员添加、移除和修改页面的某一部分。

       注意,IE中的所有DOM对象都是以COM对象的形式实现的。这意味着IE中的DOM对象与原生JavaScript对象的行为或活动特点并不一致。

10.1 节点层次

       文档节点是每个文档的根节点。在HTML页面中,文档元素始终都是<html>元素。

       每一段标记都可以通过树中的一个节点来表示:HTML元素通过元素节点表示,特性(attribute)通过特性节点表示,文档类型通过文档节点表示,而注释则通过注释节点表示。

10.1.1 Node类型

       DOM1级定义了一个Node接口,该接口将由DOM中的所有节点类型实现。这个Node接口在JavaScript中是作为Node类型实现的;除了IE之外,在其他所有浏览器中都可以访问到这个类型。JavaScript中的所有节点类型都继承自Node类型,因此所有节点类型都共享着相同的基本属性和方法。

10.1.2 Document类型

       JavaScript通过Document类型表示文档。在浏览器中,document对象是HTMLDocument(继承自Document)的一个实例,表示整个HTML页面。

      1)document对象有一个body属性,直接指向<body>元素。

      2)document.title包含<title>元素中的文本。

      3)document.URL包含页面完整的URL(即地址栏中显示的URL)

      4) document.domain属性中只包含页面的域名。

      5)document.referrer保存这链接到当前页面的那个页面的URL

      6)document.anchors包含文档中所有带name属性的<a>元素

      7)document.applets包含文档中所有的<applet>元素

      8)document.forms包含文档中所有的<form>元素

      9)document.images包含文档中所有的<img>元素

      10)document.links包含文档中所有带href特性的<a>元素

10.1.3 Element类型

       Element类型用于表现XML或HTML元素,提供了对元素标签名、子节点及特性的访问。

10.1.4 Text类型

       文本节点由Text类型表示,包含的是可以照字面解释的纯文本内容。纯文本中可以包含转义后的HTML字符,但不能包含HTML代码。

10.1.5 Comment类型

       注释在DOM中是通过Comment类型来表示的。

10.1.6 CDATASection类型

       CDATASection类型只针对基于XML的文档,表示的是CDATA区域。

10.1.7 DocumentType类型

       DocumentType类型在Web浏览器中并不常用,仅有Firefox、Safari和Opra支持它。DocumentType包含着与文档的doctype有关的信息。

10.1.8 DocumentFragment类型

       在所有的节点类型中,只有DocumentFragment在文档中没有对应的标记。DOM规定文档片段(document fragment)是一种“轻量级”的文档,可以包含和控制节点,但不会像完整的文档那样占用额外的资源。

10.1.9 Attr类型

       元素的特性在DOM中以Attr类型表示。在所有浏览器中都可以访问Attr类型的构造函数和原型。

       Attr对象有3个属性:name、value和specified。其中,name是特性名称(与nodeName的值相同),value是特性的值(与nodeValue的值相同),而specified是一个布尔值,用以区别特性是在代码中指定的,还是默认的。

10.2 DOM操作技术

10.2.1 动态脚本

       跟操作HTML元素一样,创建动态脚本也有两种方式:插入外部文件和直接插入JavaScript代码。

10.7.2 动态样式

     能够把CSS样式包含到HTML页面中的元素有两个。其中,<link>元素用于包含来自外部的文件,而<style>元素用于指定嵌入的样式。与动态脚本类似,所谓的动态样式是指在页面刚加载时不存在的样式;动态样式是在页面加载完成后动态添加到页面中的。

10.7.3 操作表格
10.7.4 使用NodeList

       理解NodeList及其“近亲”NamedNodeMap和HTMLCollection,是从整体上透彻理解DOM的关键所在。这三个集合都是“动态的”;换句话说,每当文档结构发生变化时,它们都会得到更新。因此,它们始终都会保存着最新、最准确的信息。

10.3 小结

       DOM是语言中立的API,用于访问和操作HTML和XML文档。DOM1级将HTML和XML文档形象地看作一个层次化的节点树,可以使用JavaScript来操作这个节点树,进而改变底层文档的外观和结构。

转载于:https://my.oschina.net/thinkinginc/blog/209616

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值