---------- android培训 java培训 期待与您交流!------------
DOM:
(document object model)文档对象模型;
dom其实就是将一些标记型的文档以及文档中的内容当成对象.
为什么要将这些文档以及其中的标签封装成对象呢?
因为可以在对象中定义属性和行为,可以方便操作这些对象.
dom在封装标记型文档时,有三层模型.
dom1:针对html文档
dom2:针对xml文档
dom3:针对xml文档
html,xhtml,xml 这些都是标记型文档.
dhtml:是多个技术的综合体,叫做动态的html.
html:负责将数据进行标签的封装
css:负责标签的样式
dom:负责将标签中的数据封装成对象
javascript:负责通过程序设计方式来操作这些对象.
标记型文档存在着层次关系,比如:
html
|--head
|--base
|--link
|--ment
|--style
|--script
|--body
|--div
|--from
|--input
|--select
|--span
|--a
|--table
|--tbody
|--tr
|--td
|--th
|--dl
|--dt
|--dd
可以看出,通过这些标签的层次,可以形象的看作是一个树型结构.
那么我也称标记型文档,加载进内存的是一颗dom树
这些标签以及标签的数据都是这棵树上的节点.
dom对标记型解析有一个弊端,就是在文档过大的情况下,相对耗资源,
对于大型文档可以使用(SAX)这种方式解析
节点类型:
标签型节点: 类型为1
属性节点: 类型为2
文本型节点: 类型为2
注释型节点: 类型为8
document: 类型为9
注意:标签之间存在空行时,会出现一个空白的标签文本,在获取节点时一定要注意.
节点的关系:
父节点 parentNode:
子节点 childNodes:
兄弟节点
上一个兄弟节点:previousSibling
下一个兄弟节点:nextSibling
--------------------------------------------------------------------------------------------
获取节点可以通过节点的层次关系来完成
getElementById:通过id属性值获取对应的节点对象.如果有多个id值相同,获取到的是第一个id所属对象.
尽量保证id的唯一性,返回的是一个对象.
getElementByName:通过标签的name属性值获取对象,返回的一堆对象,其实是一个对象数组.
getElementByTagName:即没有id也没有name时,可以通过标签名来获取节点对象,返回的是一堆对象,
其实是一个对象数组,大多容器标签都具备该方法.