DOM(文档对象模型)提供标签对象通用的访问方式,将Html文件视为一颗节点树,没一个标签和文字都是一个节点,可以走访文件的节点和访问Html标签的内容。
DOM树中的不同类型的节点有一些共同的属性和方法,通过这些属性和方法,我们可以访问DOM树中的所有节点、动态创建各种类型的节点。节点是DOM中最基本的对象类型,节点就是DOM树中的任何事物。
一、访问节点
访问元素时,我们应该知道该文件的文档元素是什么:
document.documentElement--访问元素;
二、检测节点类型
通过使用nodeType特性检测节点类型:
alert(document.nodeType);
alert(document.documentElement.nodeType);
三、处理元素属性
节点对象即使具有attributes方法,但已经被所有类型的节点继承,只有元素节点才能有特性。元素节点的attributes属性其实是NameNodeMap,提供了用于访问和处理其内容的方法;
1)getNamedItem(name)--返回nodeName属性值等于name节点;
2)removegetNamedItem(name)--删除nodeName属性值等于name节点;
3)setNamedItem(name)--将node添加到列表中,按nodeName属性进行索引;
4)Item(pos)--像NodeList一样,返回位置在pos的节点
DOM又定义了三个元素方法来帮助访问特性;
1)getAttribute(name)--等于attributes.getNamedItem(name).value;
2)setAttribute(name,newvalue)--attributes.getNamedItem(name).value=newvalue;
3)removeAttribute(name)--等于attributes.removegetNamedItem(name);
四、访问指定节点
1)getElementsByTagName()--返回一个NodeList数组,包含所有标记名特性;
getElementsByTagName(“img”)
2)getElementsByName()--用来获取所有的name属性等于指定值的元素;
3)getElementById()--取单个指定元素(id具有唯一性,所以这是能最快的从文档树中找到指点元素的方法);
五、创建和操作节点
1)createAttribute(name):用给定名称name创建特性节点(创建一个属性);
2)createComment(text):创建包含文本text的注释节点;
3)createDocumentFragment():创建文档碎片节点;
4)createElement(tagname):创建标记名为tagname的标签;
document.createElement(“p”);
5)createTextNode(text):创建包含文本text的文本节点;
document.createTextNode(“hello,world”);
6)removChild():移除子元素;
document.parentNode.removChild();
7)appendChild():添加子元素;
document.parentNode.appendChild();
8)replaceChild():替换子元素;
document.parentNode.replaceChild(要添加的节点,被替换的接地啊);
9)insertBefore():插入新的到旧的之前;
document.parentNode.insertBefore(要添加的节点,插在那个节点之前);
10)cloneNode():克隆节点;
false为浅克隆,克隆的是标签;true为深克隆,全部克隆。
六、table方法
<table/>元素添加以下内容:
caption:指向<caption/>元素(如果存在);
tBodies:<tbody/>元素的集合;
tFoot:指向<tFoot/>元素(如果存在);
tHead:指向<tHead/>元素(如果存在);
rows:表格中所有行的集合;
createTHead:创建<tHead/>元素并将其放入表格;
createTFoot:创建<tFoot/>元素并将其放入表格;
createCaption:创建<caption/>元素并将其放入表格;
delectTHead:删除<tHead/>元素;
delectTFoot:删除<tFoot/>元素;
delectCaption:删除<caption/>元素;
delectRow(position):删除指定位置上的行;
insertRow(position):在rows集合中的指定位置插入新行;
<tbody/>元素添加以下内容:
rows:<tbody/>中所有行的集合;
delectRow(position):删除指定位置上的行;
insertRow(position):在rows集合中的指定位置插入新行;
<tr/>元素添加以下内容:
cells:<tr/>元素中所有单元格的集合;
delectCell(position):删除指定位置上的单元格;
insertCell(position):在cells集合中的给定位置插入新单元格;