先看个小例子:
DOM常用的5个方法:
getElementById
getElementsByTagName
gettElemensByClassName
getAttribute
setAttribute
DOM中的D表示文档,O表示对象,M表示模型。其中,对象分为3种:
用户定义的对象
内建对象,如Array,Math,Date等
宿主对象,由浏览器提供的对象,,如window.open,window.blur.
getElementsByClassName兼容性处理:
|
|
小结:
一份文档就是一颗节点树。
节点分为不同类型:元素,属性,文本节点等。
getElementById将返回一个对象,该对象对应着文档里的一个特定的元素节点。
getElementsByTagName和getElementsByClassName将返回一个数组,分别对应文档里一组特定的元素节点。
每一个节点都是一个对象。
获取和设置属性:
getAttribute是一个函数,只有一个参数:
|
|
var paras=document.getElementsByTagName(“p”);
//方法一:
for(var i=0;i<paras.length;i++){
var title_text=paras[i].getAttribute(“title”);
if(title_text!= null){
alert(title_text);
}
}
//方法二:
for(var i=0;i<paras.length;i++){
var title_text=paras[i].getAttribute(“title”);
if(title_text) alert(title_text);
}
…
setAttribute
getAttribute是一个函数,有2个参数:
|
|
用setAttribute改变原有属性的值:
|
|
childNodes属性:
该属性可获取任何一个元素所有的子元素,他是一个所有子元素的数组。
显示body所有子元素的总个数:
|
|
nodeType属性:
语法:
|
|
nodetype得值是个数字,而不是像“element”,”attribute”那样的字符串。
nodeType只有12种,但只有3种有实用价值:
元素节点的nodeType属性值为1
属性节点的nodeType属性值为2
文本节点的nodeType属性值为3
动态改变属性值:
|
|
nodeValue属性
改变文本节点的值:
|
|
firstChild与lastChild属性:
|
|
动态创建标记
传统方法:document.write和innerHTML
DOM方法:creatElement,createTextNode,appendChild和insertBefore
|
|
insertBefore方法,这里需要注意没有insertAfter方法,但我们可以编写它,代码如下:
|
|
最终代码如下:
|
|
持续更新完善中。。。