javascript dom 学习笔记(一)

DOM

一。定义


DOM中的D指document(文档),没有document,DOM就无从谈起
DOM中的O指Object(对象),Object分为:1)用户定义对象,指程序员自己定义的对象。2)内建对象,指javascript语言中的对象,如Array,Date,Math等。3)宿主对象,指依附载体提供的对象,即指浏览器提供的对象,如window,document,node等
DOM中的M指model(模型),某种事物的表现形式。


二。


DOM把一份文档表示为一棵树,DOM把文档表示为一颗家谱树,家谱树表示一个人家族的谱系,并使用parent(父类),child(子类),sibling(兄弟)等记号表明家族成员之间的关系。


三。节点(node)


在DOM里有许多不同类型的节点如,元素节点、文本节点、属性节点。


1.元素节点(nodeType==1),如果把web文档比作一座大厦,元素就是大厦的砖块,这些元素在文档中的布局形成了文档的结构。标签的名字就是元素的名字,文本段落元素的名字P,无序清单元素的名字是ul,列表项元素的名字是li。
2.文本节点(nodeType==3),其实就是包含在元素节点之间的内容。
3.属性节点(nodeType==2),用来对元素做出更具体的描述。如<p title="hello"></p>中的title就是属性节点。




ps:节点伤的各个元素都会继承父元素的样式属性(css)。


四。获取元素


ps:文档中的每一个元素都是一个对象。
有三种获取元素节点的方法,分别通过元素ID(document.getElementById),标签名字(document.getElementsByTagName)和通过类名字获取(document.getElementsByClassName,HTML5中新增的方法)。
三者可以组合使用:
var a1 = document.getElementById('a1');
var a2 = a1.getElementsByClassName('a3'); //返回数组


介于getElementByClassName是HTML5所支持的,也就是很多老的浏览器不支持,所以可以通过这个函数进行实现


function getElementsByClassName(node,classname){ 
if(node.getElementsByClassName){ 
return node.getElementsByClassName(classname);
}else{ 
var results = [];
var elems = node.getElementsByTagName('*');
for(var i=0,j=elems.length;i<j;i++){ 
if(elems[i].className.indexOf(classname)!=-1){ 
results[results.length]=elems[i];
}
}
return results;
}
}


参考:javascript DOM 编程艺术。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值