DOM到底是什么
所谓的“D”
什么是D,就是文档,document的简称吧。在计算机中,document就是对象。
所谓的“O”
什么是O呢,就是对象吧,object的简称,对象又分为三种类型:
用户定义对象(自行创建)
内建对象(内建在js语言中的对象,如Math.Array.Date等)
宿主对象(由浏览器提供)
所谓的”M”
什么是M,就是model,模型的意思,也有的成为Map。总之浏览器提供了加载脚本所应有的那种“地图“或是”模型“
DOM中的“树”状关系
主干和分支
#
节点(node)
一个网络就是由一些节点构成的集合。
节点类型:元素节点,文本节点和属性节点。
元素节点:标签的名字就是元素的名字,元素在文档的布局形成了文档的结构。
文本节点:例如< p>元素中包含文本“啊啊啊啊”。这就是一个文本节点。
在HTML文档内部,文本节点总是被元素节点包含。
属性节点: 就是用“title”在元素节点内部,阐释元素节点的属性。
例如:< img src=”x” title=”cccc”>
#
获取元素的方式:
有三种:
1.getElementById(id的操作数可以用typeof操作符来验证是什么)
2.getElementByTagName(这个方法将会返回一个对象数组,这个方法和上面的ID同样只有一个参数,这个参数是标签的名字)
element.getElementByTagName(tag)
因为是数组,所以可以在获得的值后面加上.length可以取长度。
3.getElementByClassName
这个方法是HTML5新增加的获取数据的方法。
某些DOM实现可能还没有。
可以通过class属性类名来访问元素。
#
特别强调一下,getElementByClassName中,可以用空格隔开相邻类名,实现多个类名同时获取。
老浏览器无法使用本方法的解决办法在jsdom的42页上部。
#
获取和设置属性的方式:
1.getAttribute()
本方法不属于document对象,所以不能通过document对象调用。只能用元素节点调用。
object.getAttribute(attribute)
2.setAttribute ()本方法是对节点信息进行修改…很重要很重要很重要
object.setAttribute(attribute,value)
修改节点之后可以用 getAttribute 来测试,通过alert弹出对话框,检验是否修改成功!