---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
DOM: Document Object Model, 文档对象模型
DOM的作用:用来将标记型文档(什么叫标记型文档?文档中除了标签、属性就是内容)封装成对象,并将标记型文档中的所有内容(标签、文本、属性等)都封装成对象。封装成对象的目的是为了更方便的操作这些文档以及文档中的所有内容。因为对象的出现,就可以有属性和行为被调用。
DOM解析的特点:
只要是标记型文档,DOM技术都可以对其进行操作,比如HTML、XML
操作方式:先对文档进行解析,将标记型文档解析为一棵树,并将树中的内容封装为 节点对象。
DOM操作的优势:对树种的节点进行增删改查比较方便
DOM操作的弊端:要将DOM一次性加载到内存,意味着如果文档体积较大,会较为浪费内存空间
DOM解析的三级模型:
DOM level1模型:将html文档封装成了对象
DOM level2模型:在level1的基础上,加入了名称空间的功能
DOM level3模型:能够解析xml了,将xml封装成了对象
DOM获取节点:
节点有三个共同的属性:
节点名称(nodeName)、节点类型(notdeType)、节点值(nodeValue)
获取节点有三个方法:
getElementById、getElementsByName、getElementsBytagName
getElementById:标签中的id尽量保证唯一性,只有在大的区域,为了方便于获取和操作,才定义id属性.返回的是一个节点对象,当设置多个相同名字的id时,也只获取第一个
getElementsByName:name属性只存在于表单里的组件,name属性很容易重复,因此它的返回值是一个节点数组.可先获取长度,通过数组的方式获取节点的属性.这样便可以对用户输入的数据进行操作.
getElementsBytagName,通过标签名字获取节点对象,标签易重复,因此它返回的也是一个节点数组.
每个节点都有三种属性:名称、类型、值
名称:nodeName,节点名称,如果是div,那返回的肯定是div,就是标签的名称
类型:nodeType,节点类型,1表示标签型节点,2表示属性节点,3表示文本节点
值:对于标签型节点是没有值的,属性和文本节点是可以有值的。
通过节点关系获取节点:
父节点:parentNode,该属性返回一个节点对象
子节点:childNodes,该属性返回一个节点集合
上一个兄弟:previousSibling,返回元素的上一个元素的节点对象
下一个兄弟:nextSibling,返回元素的下一个元素的节点对象
这里有个需要注意的地方:对于表格,也就是table元素,它的第一个儿子是tbody,而不是tr,不管你有没有在table下面定义
这个tbody,table的第一个儿子都是tbody,孙子才是tr。
建议:尽量少用兄弟节点,兄弟节点获取到的内容会因为浏览器的不同而解析方式不一样,主要是会解析出标签间的空白节点
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------