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 1和DOM 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属性,等等