1.什么是DOM?
DOM:Document Object Model,文档对象模型
- D:文档,html文档或者xml文档
- O:对象,document对象的属性和方法
- M:模型
- DOM是针对XML(HTML)的基于树的API
- DOM树:节点(node)的层次
- DOM把一个文档表示为一颗家谱树(父、子、兄弟)
- DOM定义了Node的接口以及许多种节点类型来表示XML节点的多个方面
2.API
org.w3c.dom :Interface Document
All Superinterfaces :Node
All Known Implementing Classes : SOAPPart
3.Node
节点(Node):来源于网络理论,代表网络中的一个连接点。网络是由节点构成的集合。
- 节点分为元素节点、属性节点和文本节点三类。<p title="a gentle remainder">Don't forget to buy this staff.</p>
- 属性节点:元素的属性,可以直接通过属性的方式来操作。
- 文本节点:元素节点的子节点,内容是文本。
3.JavaScript
JS代码怎么写?
- Html和JS代码耦合在一起,JS代码以属性节点的方式出现。
- 写在一对script标签内。
JS代码写在什么位置?
- title标签之后,可能因为文档没有加载完而出问题。
- body标签的最后,但不符合写JS代码的习惯。
- 使用window.onload方法。
4.如何获取元素节点
getElementById :获取指定id的节点;在编写HTML文档时,须确保id属性值是唯一的;该方法为document对象的方法。
getElementsByTagName :获取指定标签名的所有节点;该方法为node接口的方法,即任何一个节点都有这个方法。
getElementsByName :根据HTML文档元素的name属性值来获取指定节点的集合。若HTML元素自身没有定义name属性,则该方法对于IE无效,使用需谨慎。
5.读写属性节点
获取指定元素的节点,读取指定属性的值,设置指定属性的值,使用node.value。
6.获取元素节点的子节点
获取元素节点的所有子节点 :先通过getElementById获取指定元素,然后通过childNodes获取元素节点的所有子节点,该方法不实用;可以通过getElementsByTagName进一步获取有用的子节点。
获取第一个和最后一个子节点 :firstChild,lastChild。
7.获取文本节点
获取元素节点,调用firstChild得到文本元素节点,通过nodeValue属性操作文本节点的值。