David.Ko

Follow my heart!
posts - 100, comments - 11, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

DOM的部分对象的层次结构

Posted on 2010-04-22 12:31 David.Ko 阅读(1847) 评论(0)  编辑  收藏 所属分类: ext
转载于:http://hi.baidu.com/shtronger/blog/item/7dcf306174aa724deaf8f8f4.html

DOM的部分对象的层次结构。

在该层次结构中,最顶级的对象是窗口对象(window),它代表当前的浏览器窗口;之下是文档对象(document)、事件对象(event)、框架对象(frame)、历史对象(history)、地址对象(location)、浏览器对象(navigator)屏幕对象(screen);在文档对象之下包括表单(form)、图像(image)链接(link)等多种对象;在浏览器对象navigator之下包括MIME类型对象(mimeType)插件对象(plugin);在表单对象之下还包括按钮(button)、复选框(checkbox)、文件选择框(fileUpload)等多种对象。

注意:这个图只包括了基本的DOM对象,本教程中使用的对象都在其范围内。这实际上只是DOM中很小的一部分。DOM的内容很丰富,可以写一本厚厚的专著。

既然都是对象,所以每一个DOM对象都拥有属性(描述Web页面或文档的变量)和方法(允许操作部分Web页面)。复杂的对象拥有的属性和方法相当多,如document对象。
注意:这些对象形成的是嵌套关系,而不是继承关系。所谓嵌套,就是高层对象包含低层对象,低层对象的属性和方法,和高层对象是相互独立的,它们之间不 是父对象和子对象的关系。如同大盒子里可以放各种东西和小盒子、小盒子里还可以放各种东西和更小的盒子一样。所谓继承,就是子对象拥有父对象的一切属性和 方法,同时可能还有自己的属性和方法,类似于父子关系(当然还不完全一样)。
但在DOM中,也经常把下层对象说成是“子对象”,把上层对象说成是“父对象”。这种说法是不严格的,因为它们之间并不是继承关系。但是,这种说法已经约定俗称,因此我们后面也这样说。

需要注意的是:DOM不是JavaScript的一部分,而是内置在浏览器中的一个对象模型,所有语言都可以利用和操纵它,如VBScript、VB.NET、C#Java等。JavaScript只是最早使用DOM的语言而已,当然也是人们用得最多的网页编程语言。因此,DOM可以看成应用程序接口(API)。DOM的基本内容已经标准化了,形成了DOM 1DOM 2规范,并被越来越多的浏览器所支持。DOM的高级部分仍在不断发展中。

对象引用方法

既然是嵌套关系,当引用一个低层对象时,应该先写父对象名,后面接着是子对象名,对象名之间用小圆点“.”隔开。例 如,document是最顶层对象window的下层对象,如果要表示文档对象document的一个图像子对象image9,因此引用image9对象 可以这样写:

   window.document.image9

其实,这种引用方法在上一章的例子中已经多次使用。又如,如果要引用document对象,应使用window.document;如果要引用location对象,应使用window.location。由于window对象是默认的最上层对象,因此引用它的子对象时,可以不使用window.,也就是说,可以直接用document引用document对象,用location引用location对象。这就是为什么我们用了那么多“document.write”而不必用“window.document.write”的原因。

当引用较低层次的对象时,一般有两种方式 ---- 使用对象索引或使用对象名(对象的name属性),也可以使用对象的id属性。例如,如果要引用文档中的第一个表单对象,则可以用:

   document.forms[0]

来引用,因为一个document中的各个form对象会形成一个对象数组,form[0]当然是这个数组的第一个form对象即表单对象。如果该表单的name属性为form1(或者id属性为form1),则可以用:

   document.forms["form1"]

或直接用:

   document.form1

来引用该表单。同样,如果在名称为form1的表单中包括一个名称为myText的文本框,则可以用:

   document.form1.myText

来引用该文本框对象。

后面我们将会看到:最好使用id属性。要解释原因,需要了解更多的知识,我们在本章后半部分会明白的。但在HTML教程中,主要介绍的是传统的name属性,因此现在我们两个属性都会使用的。

对应于不同的对象,通常还有一些特殊的引用方法。例如,如果要引用表单对象中包含的对象,可以使用elements数组;如果要引用文档对象中包含的某个标记符对象(例如<p>对象),可以使用document对象的all属性,等等




只有注册用户登录后才能发表评论。


网站导航: