DOM(文档对象模型),是针对HTML和XML文档的API。主要由元素节点,属性节点,文本节点组成。
DOM节点共有属性和方法
节点属性:
nodeType, 元素节点1,属性节点2,文本节点3;nodeName,元素节点保存元素的标签名与原始节点的tagName相同,属性节点为属性名,文本节点为#text;nodeValue,元素节点为null,文本节点为文本内容,属性节点为属性值;textContent,回当前节点和它的所有后代节点的文本内容,会把其中的标签解释为文本;childElementCount,返回子元素的个数;
节点方法:
.contains(), 接受一个节点作为参数,返回一个布尔值,表示参数节点是否为当前节点的后代节点;.isEqualNode(), 返回一个布尔值,用于检查两个节点是否相等。所谓相等的节点,指的是两个节点的类型相同、属性相同、子节点相同;.isSameNode(),返回一个布尔值,检查两个节点是否为同一个节点;.cloneNode(),接收一个布尔值参数,表示是否进行深复制,深复制会复制其子节点,不会复制节点事件;
节点数结构
parentNode,父节点,对于一个节点来说,它的父节点只可能是三种类型:element节点、document节点和documentFragment节点;childNodes,所有子节点,基于DOM结构动态查询的结果,因此DOM结构的变化能够自动反映在Nodelist对象中;children,所有子元素节点,childElementCount子元素个数;firstChild,第一个子节点,firstElementChild第一个元素子节点,如果当前节点没有子节点,则返回null;lastChild,最后一个子节点,lastElementChild最后一个元素子节点;nextSibling,下一个兄弟节点,nextElementSibling下一个元素兄弟节点;previousSibing,上一个兄弟节点,previousElementSibing上一个元素兄弟节点;
选取节点
document.querySelector()、document.querySelectorAll(),接收一个CSS选择符,并获取匹配元素,返回的是一个静态集合。DOM内部的变化,并不会实时反映在该方法的返回结果之中。document.getElementsByName(),返回有指定name的元素,常用情况是取得单选按钮,name相同的单选按钮只有选中那个会被获取;document.getElementById();document.getElementByClassName();document.getElementByTagName();document.activeElement(),DOM中当前获得焦点的元素;document.documentElement,取得html;document.body,取得body;
操作节点
parentNode.appendChild(newNode),在父节点末尾添加一个节点,如果目标节点已经是文档的一部分了,那结果就是将该节点从原来的的位置移动到新位置;parentNode.insertBefore(newNode, targetNode),在父节点的某个子节点之前添加一个节点,目标位置参数null则跟appendChild()一样,如果所要插入的节点是当前DOM现有的节点,则该节点将从原有的位置移除,插入新的位置;parentNode.replaceChild(newNode, oldNode),替换一个子节点;parentNode.removeChild(node),移除一个子节点;document.createElement(),创建元素节点;document.createTextNode(),创建文本节点;document.creatDocumentFragment(),利用DocumentFragment作为仓库先储存元素,最后再一起插入目标元素,避免浏览器多次渲染;
Document文档节点
Document,是整个文档树的顶层节点,也是window对象的一个属性。
document节点有不同的办法可以获取:
- 对于正常的网页,直接使用
document或window.document; - 对于iframe载入的网页,使用iframe节点的
contentDocument属性; - 对Ajax操作返回的文档,使用XMLHttpRequest对象的
responseXML属性; - 对于包含某个节点的文档,使用该节点的
ownerDocument属性;
document节点属性:
document.doctype,doctype标签(比如<!DOCTYPE html>);document.documentElement,返回HTML元素;document.defaultView属性,在浏览器中返回document对象所在的window对象,否则返回null;document.documentURI(所有文档),document.URL(HTML文档)表示当前文档的网址;document.location,属性返回location对象,提供了当前文档的URL信息;document.anchors,集合返回了当前页面带有name的锚链接数组,不建议使用;document.links,取得所有带href特性的a元素;document.title,获取文档标题,也可以修改文档标题;document.URL,获取页面完整URL,只读;document.referrer,保存着链接到当前页面的那个页面的URL,只读,如果当前文档不是通过超级链接访问的,则为 null;document.domain,返回当前页面域名,可写,当页面存在在其它域的子域,设置domain可以使父子间通信;document.forms,取得所有表单元素;document.images,取得所有图像元素;document.embeds,属性返回网页中所有嵌入对象,即embed标签;document.readyState,有两个值loading和complete,用来实现一个指示文档已经加载完成的指示器浏览器开始解析HTML文档,document.readyState属性等于loading。浏览器遇到HTML文档中的