什么是DOM?
DOM(Document Object Model)文档对象模型,是语言和平台的中立接口。。
允许程序和脚本动态地访问和更新文档的内容。
为什么要使用DOM?
Dom技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,Dom技术使得页面的交互性大大地增强。
HTML的DOM
HTML的DOM是一个内存对象树,在浏览器中只保存一份,HTML的DOM修改HTML的内容会直接反应到浏览器中
API
NODE对象API
在DOM眼中,HTML是由不同类型的节点组成的,这些节点都属性NODE对象。
NODE对象有一个nodeType的属性可用于判断节点类型
HTML不同类型的节点之间都是有联系的:
- 位于一个节点之上的节点是该节点的父节点(parent)
- 一个节点之下的节点是该节点的子节点(children)
- 同一层次,具有相同父节点的节点是兄弟节点(sibling)
- 一个节点的下一个层次的节点集合是节点后代(descendant)
- 父、祖父节点及所有位于节点上面的,都是节点的祖先(ancestor)
于是乎,NODE对象也有访问节点的属性和方法
属性:
总的来说就是:得到节点的信息(节点名字、节点值)以及访问节点的兄弟、父亲
方法:
总的来说就是:添加、替换、删除子节点,判断是否有子节点,克隆子节点
document
HTML的DOM中我们提到并大量使用了document这个Javascirpt的内置对象,请注意这个对象仅仅可以表示HTML的根节点。
document的属性:
- documentElement【可以获取得到
<html>
这个节点】
document方法:
- createElement()【创建一个元素节点】
- createComment()【创建注释】
- createAttribute()【创建属性节点】
- createTextNode()【创建文本节点】
- getElementById()【通过id得到该元素节点】
- getElementsByTagName()【通过标签名,得到所有标签名的数组】
Element接口
Element代表的是元素节点,是我们经常用到的一个接口!
Element属性:
- tagName【返回的是元素标签的大写名称】
Element方法:
- getAttribute(String name)【得到属性的值】
- setAttribute(String name,String value)【设置属性的名称和值,不存在则创建】
- getElementsByTabName()【返回该元素节点的子孙节点的数组】
- removeAttribute()【移除属性】
当我们设置属性的时候,我们不是调用方法来设置,而经常会这样做:
varinput=document.createElement("input");
input.value="aa";
input.name="bb";
XML的DOM
我们可能会用XML文件作为客户端和服务器的传输文件。于是我们需要学习在JavaScript代码中通过DOM操作XML文档
XML和HTML的API是十分类似的,这里就不赘述了。
装载XML
客户端和服务端如果是通过XML文件或者XML字符串进行交互数据的话。那么,我们需要装载服务器的XML文件或XML字符串到JavaScript中的DOM对象。