-
DOM(Document Object Model 文档对象模型)是W3C的标准,是所有浏览器公共遵守的标准。
-
DOM的设计是以对象管理组织(OMG)的规约为基础的,因此可以用于任何编程语言。最初人们把它认为是一种让JavaScript在浏览器间可移植的方法,不过DOM的应用已经远远超出这个范围。
-
DOM定义了访问 HTML 和 XML 文档的标准,是HTML和XML的应用程序接口(API),它允许程序和脚本动态地访问和更新文档的内容、结构和样式。Dom技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,Dom技术使得页面的交互性大大地增强。
HTML DOM
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被构造为对象的树,这种结构被称为节点树:
在节点树中,顶端节点被称为根(root)
每个节点都有父节点、除了根(它没有父节点)
一个节点可拥有任意数量的子
同胞是拥有相同父节点的节点
下面的图片展示了节点树的一部分,以及节点之间的关系:
编程接口
可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。
HTML DOM Document 对象当浏览器载入 HTML 文档, 它就会成为 document 对象。document 对象是HTML文档的根节点与所有其他节点(元素节点,文本节点,属性节点, 注释节点)。Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。提示:Document 对象是 Window 对象的一部分,可通过 window.document 属性对其进行访问。
-
document.activeElement 属性返回文档中当前获得焦点的元素
-
document.addEventListener() 函数用于向文档添加事件句柄
-
document.adoptNode(node) 函数从另外一个文档返回 adapded 节点到当前文档
-
document.anchors 属性集合返回了当前页面的所有超级链接数组
-
document.applets返回对文档中所有 Applet 对象的引用
-
document.baseURI 属性返回 HTML 文档的基础URI
-
document.body 属性返回文档的body元素
-
document.close()用于关闭浏览器窗口
-
document.cookie 属性返回当前文档所有 键/值 对的所有 cookies
-
document.createAttribute() 函数用于创建一个指定名称的属性,并返回Attr 对象属性
-
document.createComment() 函数可创建注释节点
-
document.createDocumentFragment() 函数创建了一虚拟的节点对象,节点对象包含所有属性和方法
-
document.createElement() 函数通过指定名称创建一个元素
-
document.createTextNode() 函数可创建文本节点
-
document.doctype 属性可返回与文档相关的文档类型声明(Document Type Declaration)
-
document.documentElement 属性以一个元素对象返回一个文档的文档元素
-
document.documentMode 属性返回浏览器渲染文档的模式
-
document.documentURI 属性可设置或返回文档的位置
-
document.domain 属性可返回下载当前文档的服务器域
-
document.domConfig 属性 返回normalizeDocument()被调用时所使用的配置
-
document.embeds 集合 返回文档中所有嵌入的内容(embed)集合
-
document.forms 集合返回当前页面所有表单的数组集合
-
document. getElementsByClassName() 函数返回文档中所有指定类名的元素集合,作为 NodeList 对象
-
document.getElementById() 函数可返回对拥有指定 ID 的第一个对象的引用
-
document.getElementsByName() 函数可返回带有指定名称的对象的集合
-
document.getElementsByTagName() 函数可返回带有指定标签名的对象的集合
-
document.images 集合返回当前文档中所有图片的数组
-
document.implementation 属性可返回处理该文档的 DOMImplementation 对象
-
document.importNode() 函数把一个节点从另一个文档复制到该文档以便应用
-
document.inputEncoding 属性可返回文档的编码(在解析时)
-
document.lastModified 属性可返回文档最后被修改的日期和时间
-
document.links 集合返回当期文档所有链接的数组
-
document.normalize() 函数合并相邻的文本节点并删除空的文本节点
-
document.normalizeDocument() 函数可以移除空文本节点 , 并合并相邻节点
-
document.open() 函数打开一个输出流来收集 document.write() 或 document.writeln() 方法输出的内容
-
document.querySelector() 函数返回文档中匹配指定 CSS 选择器的一个元素
-
document.querySelectorAll() 函数 document.querySelectorAll() 是 HTML5中引入的新方法,返回文档中匹配的CSS选择器的所有元素节点列表
-
document.readyState 属性返回当前文档的状态(载入中……)
-
document.referrer 属性返回载入当前文档的来源文档的URL
-
document.removeEventListener() 函数用于移除由 document.addEventListener() 方法添加的事件句柄
-
document.scripts 集合返回页面中所有脚本的集合
-
document.strictErrorChecking 属性可设置或返回是否强制进行错误检查(error-checking)
-
document.title 属性可返回当前文档的标题( HTML title 元素中的文本)
-
document.URL 属性可返回当前文档的 URL
-
document.write() 函数可向文档写入 HTML 表达式或 JavaScript 代码
-
document.writeln() 函数与 write() 方法作用相同,外加可在每个表达式后写一个换行符
在 HTML DOM 中, 元素对象代表着一个 HTML 元素。元素对象 的 子节点可以是, 可以是元素节点,文本节点,注释节点。NodeList 对象 代表了节点列表,类似于 HTML元素的子节点集合。所有主流浏览器都支持元素对象和NodeList 对象。
-
element.accessKey 属性可设置或返回访问单选按钮的快捷键
-
element.addEventListener() 函数用于向指定元素添加事件句柄
-
element.appendChild() 函数http://techbrood.com/jsref?p=met-node-appendchild
-
element.attributes 属性返回指定节点属性的集合
-
element.childNodes 属性返回包含被选节点的子节点的 NodeList
-
element.classlist 属性返回元素的类名,作为 DOMTokenList 对象
-
element.className 属性设置或返回元素的 class 属性
-
element.clientHeight 属性在页面上返回内容的可视高度(不包括边框,边距或滚动条)
-
element.clientWidth 属性在页面上返回内容的可视宽度(不包括边框,边距或滚动条)
-
element.cloneNode() 函数可创建指定的节点的精确拷贝,拷贝所有属性和值,该方法将复制并返回调用它的节点的副本。如果传递给它的参数是 true,它还将递归复制当前节点的所有子孙节点。否则,它只复制当前节点。
-
element.compareDocumentPosition() 函数按照文档顺序,比较当前节点与指定节点的文档位置
-
element.contentEditable 属性用于设置或返回元素的内容是否可编辑
-
element.dir 属性设置或返回元素的文字方向
-
element.firstChild 属性返回被选节点的第一个子节点,如果选定的节点没有子节点则该属性返回NULL
-
element.focus() 函数用于为元素设置焦点(如果可以设置)
-
element.getAttribute() 函数通过名称获取属性的值
-
element.getAttributeNode() 函数从当前元素中通过名称获取属性节点
-
element.getElementsByTagName() 函数可返回带有指定标签名的对象的集合
-
element. getElementsByClassName() 函数返回文档中所有指定类名的元素集合,作为 NodeList 对象
-
element.getFeature() 函数返回指定特征的执行APIs对象
-
element.getUserData() 函数返回一个元素中关联键值的对象
-
element.hasAttribute() 函数通过名称获取属性的值
-
element.hasAttributes() 函数如果某节点有任何属性时返回 true,否则返回 false
-
element.hasChildNodes() 函数可在某节点用于任何子节点时返回 true,否则返回 fals
-
element.hasfocus() 函数返回布尔值,用于检测文档(或文档内的任一元素)是否获取焦点
-
element.id 属性设置或者发回元素的id
-
element.innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML
-
element.insertBefore() 函数可在已有的子节点前插入一个新的子节点
-
element.isContentEditable 属性返回元素的内容是否可编辑
-
element.isDefaultNamespace() 函数如果指定的命名空间是默认的 ,isDefaultNamespace() 方法返回 true,否则返回 false
-
element.isEqualNode() 函数用于检查两个节点是否相等
-
element.isSameNode() 函数可在某个节点与给定的节点是同一个节点时返回 true,否则返回 false
-
element.isSupported() 函数用于判断当前节点是否支持某个特性
-
element.lang 属性设置或返回元素的语言
-
element.lastChild 属性可返回文档的最后一个子节点
-
element.namespaceURI 属性为被选节点返回命名空间的 URI
-
element.nextSibling 属性可返回某个元素之后紧跟的元素(处于同一树层级中)
-
element.nodeName 属性可依据节点的类型返回其名称
-
element.nodeType 属性属性返回节点类型
-
element.nodeValue 属性根据节点的类型设置或返回节点的值
-
element.normalize() 函数合并相邻的文本节点并删除空的文本节点
-
element.offsetHeight 属性返回任何一个元素的高度包括边框和填充,但不是边距
-
element.offsetWidth 属性返回元素的宽度,包括边框和填充,但不是边距
-
element.offsetLeft 属性返回当前元素的相对水平偏移位置的偏移容器
-
element.offsetParent 属性返回元素的偏移容器
-
element.offsetTop 属性返回当前元素的相对垂直偏移位置的偏移容器
-
element.ownerDocument 属性可返回某元素的根元素
-
element.parentNode 属性可返回某节点的父节点
-
element.previousSibling 属性可返回某节点之前紧跟的节点(处于同一树层级)
-
element.querySelector() 函数返回匹配指定 CSS 选择器元素的第一个子元素
-
document.querySelectorAll() 函数返回匹配指定 CSS 选择器元素的所有子元素节点列表
-
element.removeAttribute() 函数删除指定的属性
-
element.removeAttributeNode() 函数从元素中删除指定的属性节点
-
element.removeChild() 函数可从子节点列表中删除某个节点
-
element.removeEventListener() 函数用于移除由 addEventListener() 方法添加的事件句柄
-
element.replaceChild() 函数可将某个子节点替换为另一个,新节点可以是文本中已存在的,或者是你新创建的
-
element.scrollHeight 属性返回整个元素的高度(包括带滚动条的隐蔽的地方)
-
element.scrollLeft 属性返回当前视图中的实际元素的左边缘和左边缘之间的距离
-
element.scrollTop 属性返回当前视图中的实际元素的顶部边缘和顶部边缘之间的距离
-
element.scrollWidth 属性返回元素的整个宽度(包括带滚动条的隐蔽的地方)
-
element.setAttribute() 函数创建或改变某个新属性,如果指定属性已经存在,则只设置该值
-
element.setAttributeNode() 函数用于添加新的属性节点
-
element.setIdAttribute() 函数
-
element.setIdAttributeNode() 函数
-
element.setUserData() 函数在元素中为指定键值关联对象
-
element.style 属性设置或返回元素的样式属性
-
element.tabIndex 属性可设置或返回单选按钮的 tab 键控制次序
-
element.tagName 属性返回元素的标签名
-
element.textContent 属性设置或者返回指定节点的文本内容
-
element.title 属性设置或返回元素的标题
-
element.toString() 函数 一个元素转换成字符串
-
nodelist.item() 函数返回一个节点列表中指定索引的节点
-
nodelist.length 属性返回节点集合的数目
在 HTML DOM 中, Attr 对象 代表一个 HTML 属性。所有主流浏览器都支持 Attr 对象和 NamedNodeMap 对象 (在HTML DOM中, NamedNodeMap对象表示一个无顺序的节点列表, 我们可通过节点名称来访问 NamedNodeMap 中的节点)
-
attr.isId 属性如果属性是 ID 类型(例如,包含了其所属的元素的标识符),则 isId 属性返回 true,否则返回 false
-
name 属性返回属性名称
-
value 属性用于设置或者返回属性的值。
-
specified 属性如果在文档中设置了属性值,则specified属性返回 true,如果是 DTD/Schema 中的默认值,则返回 false
-
length 属性可返回集合中节点的选项数目
-
getNamedItem() 函数返回节点列表中指定属性名的值
-
item() 函数可返回节点列表中处于指定索引号的节点
-
removeNamedItem() 函数可删除指定的节点
-
setNamedItem() 函数用于添加指定节点。如果节点已经存在,它将被替换,并返回替换节点的值,否则将返回 null。
事件允许Javascript在HTML文档元素中注册不同事件处理程序。事件通常与函数结合使用,函数不会在事件发生前被执行!
-
鼠标事件
-
onclick事件会在元素被点击时发生
-
oncontextmenu事件在元素中用户右击鼠标时触发并打开上下文菜单
-
ondblclick事件会在对象被双击时发生
-
onmousedown事件会在鼠标按键被按下时发生。
-
onmouseenter事件在鼠标指针移动到元素上时触发
-
onmouseleave事件在鼠标移除元素时触发
-
onmousemove事件会在鼠标指针移出指定的对象时发生
-
onmouseover事件会在鼠标指针移动到指定的元素上时发生
-
onmouseout事件会在鼠标指针移出指定的对象时发生
-
onmouseup事件会在鼠标按键被松开时发生
-
键盘事件
-
onkeydown事件会在用户按下一个键盘按键时发生
-
onkeypress事件会在键盘按键被按下并释放一个键时发生
-
onkeyup事件会在键盘按键被松开时发生
-
框架/对象(Frame/Object)事件
-
onabort事件在用户中止加载 或提交元素时触发
-
onbeforeunload事件在即将离开当前页面(刷新或关闭)时触发
-
onerror事件在加载外部文件(文档或图像)发生错误时触发
-
onhashchange事件在当前 URL 的锚部分(以 '#' 号为开始) 发生改变时触发
-
onload事件会在页面或图像加载完成后立即发生
-
onpageshow事件在用户浏览网页时触发
-
onpagehide事件在用户离开网页时触发
-
onresize事件会在窗口或框架被调整大小时发生
-
onscroll事件在元素滚动条在滚动时触发
-
onunload事件在用户退出页面时发生
-
表单事件
-
onblur事件会在对象失去焦点时发生
-
onchange事件会在域的内容改变时发生
-
onfocus事件在对象获得焦点时发生
-
onfocusin事件在一个元素即将获得焦点时触发
-
onfocusout事件在元素即将失去焦点时触发
-
oninput事件在用户输入时触发
-
onreset事件在表单被重置后触发
-
onsearch事件在用户按下"ENTER(回车)" 按键或点击 type="search" 的 元素的 "x(搜索)" 按钮时触发
-
onselect事件会在文本框中的文本被选中时发生
-
onsubmit事件在表单提交时触发
-
剪贴板事件
-
oncopy事件在用户拷贝元素上的内容时触发
-
oncut事件在用户剪切元素的内容时触发
-
onpaste事件在用户向元素中粘贴文本时触发
-
打印事件
-
onafterprint事件在页面打印后触发,或者打印对话框已经关闭
-
onbeforeprint事件在页面即将打印时触发 (在打印窗口出现前
-
拖动事件
-
ondrag事件在元素或者选取的文本被拖动时触发
-
ondragend事件在用户完成元素或首选文本的拖动时触发
-
ondragenter事件在拖动的元素或选择的文本进入到有效的放置目标时触发
-
ondragleave事件在可拖动的元素或选取的文本移出放置目标时执触发
-
ondragover事件在可拖动元素或选取的文本正在拖动到放置目标时触发
-
ondragstart事件在用户开始拖动元素或选择的文本时触发
-
ondrop事件在可拖动元素或选取的文本放置在目标区域时触发
-
多媒体(Media)事件
-
onabort事件在视频/音频(audio/video)终止加载时触
-
oncanplay事件在用户可以开始播放视频/音频(audio/video)时触发。
-
oncanplaythrough事件在视频/音频(audio/video)可以正常播放且无需停顿和缓冲时触发
-
ondurationchange事件在视频/音频(audio/video)的时长发生变化时触发
-
onemptied当期播放列表为空时触发
-
onended事件在视频/音频(audio/video)播放结束时触发
-
onerror事件在视频/音频(audio/video)数据加载期间发生错误时触发
-
onloadeddata事件在当前帧的数据加载完成且还没有足够的数据播放视频/音频(audio/video)的下一帧时触发
-
onloadedmetadata事件在指定视频/音频(audio/video)的元数据加载后触发
-
onloadstart事件在浏览器开始寻找指定视频/音频(audio/video)触发
-
onpause事件在视频/音频(audio/video)暂停时触发
-
onplay事件在视频/音频(audio/video)开始播放时触发
-
onplaying事件在视频/音频(audio/video)暂停或者在缓冲后准备重新开始播放时触发
-
onprogress事件在浏览器下载指定的视频/音频(audio/video)时触发
-
onratechange事件在视频/音频(audio/video)的播放速度发生改变时触发
-
onseeked事件在用户重新定位视频/音频(audio/video)的播放位置后触发
-
onseeking事件在用户开始重新定位视频/音频(audio/video)时触发
-
onstalled事件在浏览器获取媒体数据,但媒体数据不可用时触发
-
onsuspend事件在浏览器读取媒体数据中止时触发
-
ontimeupdate事件在视频/音频(audio/video)当前的播放位置发送改变时触发
-
onvolumechangehttp://techbrood.com/jsref?p=event-onvolumechange
-
onwaiting事件在视频由于要播放下一帧而需要缓冲时触发
-
动画事件
-
animationend事件在 CSS 动画完成后触发
-
animationiteration事件在 CSS 动画重新播放时触发
-
animationstart事件在 CSS 动画开始播放时触发
-
过渡事件
-
transitionend事件在 CSS 完成过渡后触发
-
其他事件
-
onmessage该事件通过或者从对象(WebSocket, Web Worker, Event Source 或者子 frame 或父窗口)接收到消息时触发
-
ononline事件在浏览器开始在线工作时触发
-
onoffline事件在浏览器离线工作时触发
-
onpopstate该事件在窗口的浏览历史(history 对象)发生改变时触发
-
onshow事件当 <menu> 元素在上下文菜单显示时触发
-
onstorage该事件在 Web Storage(HTML 5 Web 存储)更新时触发
-
ontoggle事件在用户打开或关闭 &lgt;details> 元素时触发
-
onwheel事件在鼠标滚轮在元素上下滚动时触发