最新javascript语言与ajax应用第04章 文档对象模型(dom(共39张ppt课件).pptx
《最新javascript语言与ajax应用第04章 文档对象模型(dom(共39张ppt课件).pptx》由会员分享,可在线阅读,更多相关《最新javascript语言与ajax应用第04章 文档对象模型(dom(共39张ppt课件).pptx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、主编(zhbin) 董宁 陈丹中国水利水电出版社第一页,共三十九页。第4章 文档对象(duxing)模型(DOM)第二页,共三十九页。目 录第4章 文档对象(duxing)模型(DOM) 4.1 DOM基础(jch) 4.2 在DOM元素间移动 4.3 处理元素属性4.4 通过CSS类名获取DOM元素 4.5 修改DOM中的元素第三页,共三十九页。4.1 DOM基础(jch) 第4章 文档对象(duxing)模型(DOM)通过JavaScript,我们可以重构整个HTML文档,可以添加、移除、改变或重排页面上的项目。要改变页面的某个部分,JavaScript就需要对HTML文档中所有元素设置进
2、行访问的接口。通过这个接口,可以提供对HTML元素进行添加、移动、改变或移除的方法和属性,这些都由文档对象(duxing)模型(DOM)来实现。 第四页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(duxing)模型(DOM)4.1.1 DOM简介 DOM的全称是Document Object Model,即文档对象模型。在浏览器中,基于DOM的HTML分析器将一个页面转换成一个对象模型的集合(通常称DOM树),浏览器正是通过对这个对象模型的操作,来实现对HTML页面的显示。通过DOM接口(ji ku),JavaScript可以在任何时候访问HTML文档中的任何一部分数据,因此,
3、利用DOM接口可以无限制的操作HTML页面。 第五页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(duxing)模型(DOM) DOM接口提供了一种通过分层对象模型来访问HTML页面的方式,这些分层对象模型依据HTML的文档结构形成了一棵节点树。也就是说,DOM强制(qingzh)使用树模型来访问HTML页面中的元素。由于HTML本质上就是一种分层结构,所以这种描述方法是相当有效的。 对于HTML页面开发来说,DOM就是一个对象化的HTML数据接口,一个与语言无关、与平台无关的标准接口规范。它定义了HTML文档的逻辑结构,给出了一种访问和处理HTML文档的方法。利用DOM,程序开
4、发人员可以动态地创建文档,遍历文档结构,添加、修改、删除文档内容,改变文档的显示方式等等。可以这样说,HTML文档代表的是页面,而DOM则代表了如何去操作页面。无论是在浏览器里还是在浏览器外,无论是在服务器上还是在客户端,只要有用到HTML的地方,就会碰到对DOM的应用 第六页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(duxing)模型(DOM)4.1.2 DOM树的结构 前面我们讲过,DOM为我们提供的访问文档信息的媒介是一种分层对象模型,而这个层次的结构,则是一棵根据(gnj)文档生成的节点树。在对文档进行分析之后,不管这个文档有多简单或者多复杂,其中的信息都会被转化成一
5、棵对象节点树。在这棵节点树中,有一个根节点即Document节点,所有其他的节点都是根节点的后代节点。节点树生成之后,就可以通过DOM接口访问、修改、添加、删除、创建树中的节点和内容。第七页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(duxing)模型(DOM) DOM中的节点有Document、Element、Comment、Type等不同类型,其中每一个DOM树必须有一个Document节点,并且为节点树的根节点。它可以(ky)有子节点如Text节点、Comment节点等。 具体来讲, DOM 节点树中的节点有元素节点、文本节点和属性节点等三种不同的类型, 第八页,共三十九
6、页。4.1 DOM基础(jch)第4章 文档对象(duxing)模型(DOM)1元素节点(element node ) 在 HTML 文档中,各 HTML 元素如、等构成文档结构模型的一个元素对象。在节点树中,每个元素对象又构成了一个节点。元素可以包含(bohn)其它的元素,例如在下面的“购物清单”代码中: Beans Cheese Milk 所有的列表项元素都包含在无序清单元素内部。其中节点树中元素是节点树的根节点。 第九页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(duxing)模型(DOM)2文本节点(text node) 在节点树中,元素节点构成树的枝条,而文本则构成树
7、的叶子。如果(rgu)一份文档完全由空白元素构成,它将只有一个框架,本身并不包含什么内容。没有内容的文档是没有价值的,而绝大多数内容由文本提供。在下面语句中: Welcome to DOM World! 包含“Welcome to” 、“DOM” 、 “World!”三个文本节点。在 HTML中,文本节点总是包含在元素节点的内部,但并非所有的元素节点都包含或直接包含文本节点,如“购物清单”中,元素节点并不包含任何文本节点,而是包含着另外的元素节点,后者包含着文本节点,所以说,有的元素节点只是间接包含文本节点。 3属性节点(attribute node) HTML 文档中的元素或多或少都有一些属
8、性,便于准确、具体地描述相应的元素,便于进行进一步的操作,例如: Welcome to DOM World! 这里 class=Sample、id=purchases都属于属性节点。因为所有的属性都是放在元素标签里,所以属性节点总是包含在元素节点中。 第十页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(duxing)模型(DOM)4.1.3 document对象每个载入浏览器的 HTML页面都会成为 document 对象(即该HTML页面对应的DOM)。document 对象使我们可以通过JavaScript对 HTML 页面中的所有元素进行访问。document 对象是 wi
9、ndow 对象的一部分,可通过 window.document 属性对其进行访问。document对象代表一个浏览器窗口或框架中显示的HTML文件。浏览器在加载HTML文档时,为每一个HTML文档创建相应的document对象。document对象是window对象的一个属性,引用它时,可以省略window前缀。document拥有大量的属性和方法,结合了大量子对象,如图像对象、超链接对象、表单对象等。这些子对象可以控制HTML文档中的对应元素,使我们可以通过JavaScript对 HTML 页面中的所有元素进行访问。通过document对象可以使用页面中的任何元素,也可以添加新元素、删除存在
10、(cnzi)的元素。下面来看看document的属性,见表4-1。第十一页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(duxing)模型(DOM)4.1.4 获取DOM中的元素DOM中定义了多种获取元素节点的方法,如getElementById()、getElementsByName() 和 getElementsByTagName()。如果(rgu)需要获取文档中的一个特定的元素节点,最有效的方法是 getElementById()。第十二页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(duxing)模型(DOM)1document.getElementById
11、()该方法通过元素节点的ID,可以准确获得需要(xyo)的元素节点,是比较简单快捷的方法。如今,已经出现了如prototype、Mootools等多个JavaScript库,它们提供了更简便的方法:$(id),参数仍然是元素节点的id。这个方法可以看作是document.getElementById()的另外一种写法。在后面的章节中将详细介绍这些JavaScript库。需要操作HTML文档中的某个特定的元素时,最好给该元素添加一个id属性,为它指定一个(在文档中)唯一的名称,然后就可以用该id 属性的值查找想要的元素节点。 第十三页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(d
12、uxing)模型(DOM)2getElementsByName()document.getElementsByName(name)该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性。因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同(xin tn)的 name 属性),所以 getElementsByName() 方法返回的是元素节点的数组,而不是一个元素节点。然后,我们可以通过要获取节点的某个属性来循环判断是否为需要的节点。 第十四页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(duxi
13、ng)模型(DOM)【例4-4】getElementById() 方法(fngf)的使用。 4-4 function getValue() var x = document.getElementById(myHeader) alert(x.innerHTML) 这是标题 点击标题,会提示出它的值。 第十五页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(duxing)模型(DOM)3.document.getElementsByTagName():该方法是通过元素的标记名获取节点,同样该方法也是返回一个数组。在获取元素节点之前,一般都是知道元素的类型的,所以使用该方法比较简单。但是
14、缺点也是显而易见,那就是返回的数组可能十分庞大,这样就会浪费很多时间。它不是document对象的专有方法,还可以应用到其它的节点对象。其语法为:document.getElementsByTagName(标签名称); 或document.getElementById(ID).getElementsByTagName(标签名称);获取节点数组时,通常要把此数组保存在一个变量中,就像这样:var x=document.getElementsByTagName(p);变量 x 就是包含(bohn)着页面中所有 p 元素节点的数组,可通过它们的索引号来访问这些 p元素节点,索引号从 0 开始,可以使
15、用数组的 length 属性来循环遍历节点列表。 第十六页,共三十九页。4.1 DOM基础(jch)第4章 文档对象(duxing)模型(DOM)var x=document.getElementsByTagName(p);for (var i=0;ix.length;i+) / 这里可以(ky)操作相应的元素要访问第三个p元素节点,可以这么写:var y=x2;第十七页,共三十九页。4.2 在DOM元素(yun s)间移动 第4章 文档对象(duxing)模型(DOM)获取一个元素节点以后,常常需要以该元素节点为基点上下左右地移动获取其它的元素节点,childNodes前面已经介绍过了,下面
16、我们介绍其他的几种方式。1通过父节点获取parentObj.firstChild:如果节点为已知节点(parentObj)的第一个子节点就可以使用这个方法。这个属性是可以递归使用的,也就是支持parentObj.firstChild.firstChild.firstChild.的形式。 parentObj.lastChild:这个属性是获取已知节点(parentObj)的最后一个子节点。与firstChild一样(yyng),它也可以递归使用。 parentObj.childNodes:获取已知节点的子节点数组,然后可以通过循环或者索引找到需要的节点。 注意:在IE上获取的是直接子节点的数组,
17、而在Firefox上获取的是所有子节点即包括子节点的子节点。 parentObj.children:获取已知节点的直接子节点数组。 第十八页,共三十九页。4.2 在DOM元素(yun s)间移动 第4章 文档对象(duxing)模型(DOM)下面的这个(zh ge)函数就是用来处理这类情况的:function getElement(node) while(node & node.nodeType !=1) node = node.nextSibling; return node;如果处理的是元素节点,则跳过while循环,否则就执行循环体直到找到一个元素节点为止,如果最后也找不到就退出并返回n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新javascript语言与ajax应用第04章 文档对象模型dom共39张ppt课件 最新 javascript 语言 ajax 应用 04 文档 对象 模型 dom 39 ppt 课件
链接地址:https://www.taowenge.com/p-34220364.html
限制150内