DOM整理

节点类型

1.元素节点类型

节点类型 数值
元素节点 1
属性节点 2
文本节点 3
文档节点 9

2.nodeName和nodeValue属性

元素节点的nodeValue始终为null,nodeName始终保存元素的标签名。

3.childNodes

element.childNodes返回类数组对象。

4.Document类型

属性
nodeType 9
nodeName "#document"
nodeValue null
parentNode null

5.document.referrer // 取得来源页面的URL

6.Element类型

属性
nodeType 1
nodeName 元素标签名
nodeValue null
parentNode Document和Element
子节点 Element、Text、Comment、ProcessingInstruction、CDATASection或EntityReference
attributes 标签属性集合

访问元素标签名,也可以通过tagName访问

7.Text类型

属性
nodeType 3
nodeName "#text"
nodeValue 节点所包含的文本
parentNode 一个Element
子节点

DOM扩展

1.可以调用querySelector()和querySelectorAll()方法的类型可以为Document、DocumentFragment和Element。

2.由于IE9及之前版本不会返回文本节点,而其他浏览器都会返回文本节点,导致了在使用childNodes和firstChild等属性时的行为不一致。可以通过以下API来解决。

方法 说明
childElementCount 返回子元素个数(不包含文本节点和注释)
firstElementChild 返回第一个元素节点
lastElementChild 返回最后一个元素节点
perviousElementSibling 返回上一个兄弟元素节点
nextElementSibling 返回下一个兄弟元素节点

3.有关类名

  • getElementsByClassName()获取带有指定类的所有元素的NodeList
  • classList属性
  • add(value) 将给定字符串添加到列表,如存在,则不添加
  • remove() 删除
  • contains() 是否包含
  • toggle() 列表如存在,则删除;如不存在,则添加
// 例子

// 删除disabled类
div.classList.remove('disabled');
1
2
3
4

附:汇总

方法 说明
element.childNodes 获取元素所有子节点
element.nodeType 获取元素节点类型
element.nodeName 获取元素节点名称
element.parentNode 获取元素父节点
element.previousSibling 获取元素上一个兄弟节点
element.nextSibling 获取元素下一个兄弟节点
element.firstChild 获取元素第一个子节点
element.lastChild 获取元素最后一个子节点
element.hasChildNodes() 获取元素是否存在子节点,存在返回true
element.ownerDocument 获取整个文档的文档节点document
element.appendChild(newNode) 向元素最后位置添加子元素,如果newNode已经是文档中一部分,那么只是该节点变成最后一个子节点
element.insertBefore(newNode, null) 向元素指定位置(参照元素前)添加子元素,第一个参数为新元素,第二个参数为参照元素,如果第二个参数为null,那么该方法相当于appendChild
element.replaceChild(newNode, oldNode) 替换子节点
element.removeChild(someNode) 移除子节点,该方法返回被移除的节点
element.cloneNode(true) 克隆节点,如果方法内参数为true,则复制节点及其所有子节点,如果为false,则复制节点
element.setAttribute() 设置特性
element.removeAttribute() 移除特性
element.getAttribute() 获取特性
document.createTextNode("hello world!") 创建文本节点
document.createElement("div") 创建元素节点
document.createDocumentFragment() 创建文档片段,该片段继承了Node所有方法,通常用来执DOM操作
最后更新: 8/29/2019, 4:33:18 PM