dom笔记

(一)HTMLDocument接口

操作HTML文档的第一步就是获取对文档元素的引用,每一个元素在DOM中就是一个节点,所有的元素在DOM中构成一个节点树。

用于获取元素节点定义的方法定义于HTMLDocument接口,window.document方法用于实现该接口,其定义的常用方法和属性如下:

属性或方法 返回值类型 说明
[getter] 任何类型 根据元素的name属性获取所有元素节点
all HTMLAllCollection 文档中所有元素组成的集合,已不推荐使用
body HTMLElement 获取<body>元素节点
head HTMLHeadElement 获取<head>元素节点
images HTMLCollection 获取所有<img>元素节点
embeds HTMLCollection 获取所有<embed>元素节点
plugins HTMLCollection 等同于embeds属性
links HTMLCollection 获取所有带href属性的<a>和<area>元素节点
forms HTMLCollection 获取所有<form>元素节点
scripts HTMLCollection 获取所有<script>元素节点
getElementsByName() NodeList 根据元素的name属性获取所有元素节点
getElementsByClassName() NodeList 根据元素的class属性获取所有元素节点

另外,HTMLDocument接口也继承了Core DOM的Document接口,继承的属性和方法如下:

另外,HTMLDocument接口也继承了Core DOM的Document接口,继承的属性和方法如下:

属性或方法 返回值类型 说明
documentElement Element 获取xml或者html的根元素,在html中即<html>
getElementById() Element 根据ID属性值获取指定元素
getElementsByTagName() NodeList 根据元素名称获取所有元素节点
getElementsByTagNameNS() NodeList 根据指定的命名空间的元素名获取所有元素节点

(二):Node接口

所有的节点都使用Node接口来表示,可以使用很多方法去获取节点,如document.getElementsByTagName()、document.getElementsByName()等均返回一个NodeList对象,然后获取其中的节点。

节点对应的属性和放大均在Node接口予以定义:

1、Node接口常见的属性列表

属性名 数据类型 说明
nodeName DOMString 返回节点名
nodeValue DOMString 返回节点值
nodeType int 返回节点类型(见后文)
parentNode Node 返回当前节点的父节点
childNodes NodeList 返回当前节点的所有子节点
firstChild Node 返回当前节点的第一个子节点
lastChild Node 返回当前节点的最后一个子节点
previousSibling Node 返回当前节点的紧邻的前一个兄弟节点
nextSibling Node 返回当前节点的紧邻的后一个兄弟节点
attributes NamedNodeMap 返回当前节点的所有属性
ownerDocument Document 返回当前节点对应的Document对象
namespaceURI DOMString 返回当前节点所属命名空间的URI
prefix DOMString 返回当前节点所属命名空间的前缀
localName DOMString 返回当前节点限定名的本地部分

2、Node接口常见的方法列表

方法名 数据类型 说明
appendChild Node 在末尾添加一个子节点
cloneNode Node 克隆一个子节点
hasAttributes Boolean 判断该节点是否有属性
hasChildNodes Boolean 判断该节点是否有子节点
insertBefore Node 在指定节点插入一个节点
isSupported Boolean 判断节点特定是否被支持
normalize Void 规格化节点
removeChild Node 删除一个子节点
replaceChild Node 替换一个子节点

3、Node类型

在DOM文档中,每一个节点都属于一种类型,可以使用Node.nodeType属性获取节点的类型。DOM规范规定了12种节点类型,可以使用Node接口定义的常量表示,也可以用数字表示。

节点类型常量 数值表示 说明
ELEMENT_NODE 1 元素节点
ATTRIBUTE_NODE 2 属性节点
TEXT_NODE 3 文本节点
CDATA_SECTION_NODE 4 CDATA节点
ENTITY_REFERENCE_NODE 5 实体引用节点
ENTITY_NODE 6 实体节点
PROCESSING_INSTRUCTION_NODE 7 处理指令节点
COMMENT_NODE 8 注释节点
DOCUMENT_NODE 9 文档节点
DOCUMENT_TYPE_NODE 10 文档类型节点
DOCUMENT_FRAGMENT_NODE 11 文档片段节点
NOTATION_NODE 12 符号节点

三):Element接口和HTMLElement接口

一、Element接口

Element接口表示一个元素,该接口扩展自Node接口,自然继承了Node接口的属性和方法,也有一套针对元素的属性和方法。

Element接口常见的属性比较少,常用的就是一个只读的tagName属性,该属性返回元素名,数据类型是DOMString。

Element接口定义的方法也主要是针对属性操作,常见方法如下:

方法名 数据类型 说明
getAttribute DOMString 返回对应属性
getAttributeNode Attr 返回对应属性节点
getAttributeNodeNS Attr 返回属性命名空间
getAttributeNS DOMString 返回对应属性节点
getElementsByTagName NodeList 节点名获取元素列表
getElementsByTagNameNS NodeList 根据指定空间内的标签名搜索所有元素
hasAttribute Boolean 判断属性是否存在
hasAttributeNS Boolean 判断属性是否存在
removeAttribute void 删除属性
removeAttributeNode Attr 删除属性
removeAttributeNS void 删除属性
setAttribute void 添加属性
setAttributeNode Attr 添加属性节点
setAttributeNodeNS Attr 添加属性节点
setAttributeNS void 添加属性

二、HTMLElement接口

该接口继承自Element接口,同样用于表示一个HTML元素,拥有自定义的属性和方法。

1、属性列表

属性名 数据类型 只读 说明
innerHTML DOMString   获取或设置HTML内容
outerHTML DOMString   设置或获取对象的纯文本形式
id DOMString   对应元素的id属性
title DOMString   对应元素的title属性
lang DOMString   对应元素的lang属性
dir DOMString   对应元素的dir属性
className DOMString   对应元素的class属性
classList DOMTokeList Y 返回元素的class属性作为DOMTokenList对象
dataset DOMStringMap Y 返回自定义的data-*属性集合
hidden Boolean   对应元素的hidden属性
tabIndex long   对应元素的tabIndex属性
accessKey DOMString   对应元素的accessKey属性
accessKeyLabel DOMString Y 返回热键组合
draggable Boolean   对应元素的draggable属性
contentEditable DOMString   对应元素的contentEditable属性
isContentEditable Boolean Y 判断元素是否可用编辑
contextMenu HTMLMenuElement   对应元素的contextMenu属性
spellcheck DOMString   对应元素的spellcheck属性
commandType DOMString Y 对应元素的commandType属性
label DOMString Y 对应元素的label属性
icon DOMString Y 对应元素的icon属性
disabled Boolean Y 对应元素的disabled属性
checked Boolean Y 对应元素的checked属性
style CSSStyleDeclaration Y 对应元素的style属性

2、方法列表

方法名 数据类型 说明
getElementsByClassName NodeList 根据元素的class属性获取所有元素
insertAdjacentHTML void 在指定位置插入HTML或XML
click void 单击元素,触发click事件
scrollIntoView void 滚动元素内容到视点内
focus void 元素获取焦点
blur void 元素失去焦点

(四):HTML 5 DOM复杂数据类型


HTML 5 DOM定义了一下集合、列表等复杂的数据类型用于实现便捷的操作。相对于HTML 4 DOM,HTML 5 DOM增加了HTMLCollection、DOMTokenList、DOMStringMap、HTMLAllCollection、HTMLFormControlsCollection等。

一、HTMLCollection、HTMLAllCollection和HTMLFormControlsCollection

三个接口均用于表示一组元素组成的列表。HTMLAllCollection和HTMLFormControlsCollection均继承自HTMLCollection接口,对HTMLCollection接口中定义的namedItem()方法进行了重写。在DOM笔记(一):HTMLDocument接口,利用document.forms(/images/embeds等)返回一个HTMLCollection对象,document.all则返回一个HTMLAllCollection对象,document.forms.elements则返回一个HTMLFormControlsCollection对象,该对象包含了form中的所有表单元素。

属性或者方法 数据类型 说明
length long 只读,返回集合中的元素数量。三个接口均有此属性
item() object 1、根据索引获取集合中的元素。在HTMLCollection中定义

(五):JavaScript的常见事件和Ajax小结

一、常见事件类型

1、鼠标事件

事件名称 说明
onclick 鼠标单击时触发
ondbclick 鼠标双击时触发
onmousedown 鼠标左键按下时触发
onmouseup 鼠标释放时触发
onmouseover 鼠标的光标移动到某对象上时触发
onmousemove 鼠标移动时触发
onmouseout 鼠标光标离开某对象时触发

ps:当单击一次鼠标左键的时候,将同时触发onclick、onmousedown、onmouseup三个事件,事件处理程序执行的先后顺序为:onmousedown>onmouseup>onclick.因为按下鼠标产生的动作肯定是在释放鼠标之前的,而一次按下加上一次释放,才代表一次单击,所以onclick最后执行。

2、键盘事件

事件名称 说明
onkeypress 某个键按下以后触发
onkeydown 某个键按下时触发
onkeyup 某个键被释放时触发

ps:对键盘的操作也会同时触发这三个事件,其处理程序执行的先后顺序是onkeydown>onkeypress>onkeyup.原因参见鼠标事件。

3、页面事件

事件名称 说明
onerror 页面出错时触发
onload 页面加载完成时触发
onresize 浏览器窗口大小该表时触发
onscroll 浏览器滚动条的位置发生变化时触发
onunload 页面将被卸载时触发

4、表单事件

事件名称 说明
onblur 元素失去焦点时触发
onchange 元素失去焦点并且元素内容改变时触发
onfocus 元素获得焦点时触发
onsubmit 表单被提交时触发

二、JavaScript Ajax小结

1.创建XHR对象

方法 说明
new ActiveXObject(“Microsoft.XMLHTTP”) 适用于i支持window.ActiveXObject的ie5和ie6等
new XMLHttpRequest() 适用于ie7+/ff/chrome/safari/opera等

2、XHR对象的属性和方法

属性或方法 说明
readyState 通信状态,取值0~4,见后文
onreadystatechange readyState改变时触发此事件
responseText 服务器返回的文本格式文档
responseXML 服务器返回的XML格式文档
status 状态码,如100,200,404,500等
statusText 状态码对应的文本(OK/Not Found)
abort() 中止当前请求
open(method,url) 打开一个请求
send(args) 发送请求
setRequestHeader(key,value) 设置请求的头部
getResponseHeader(key) 获取响应的头部值
getAllResponseHeaders() 以键值对形式返回所有头部信息

3、readyState属性

代码 说明
0 代表一个未初始化的状态。以创建未初始化的XHR对象
1 代表连接状态。已经调用了open方法,准备发送请求
2 代表发送状态。已经调用了send方法,尚未得到响应数据
3 代表正在接收状态,已经接收了HTTP响应的头部信息,正在接收响应内容
4 代表已经加载状态,此时响应内容已经被完全接收

猜你喜欢

转载自blog.csdn.net/meinanqihao/article/details/79286564