首页 > 代码库 > javascript之DOM
javascript之DOM
一、节点层次
1、node类型
nodeName、nodeValue 以及 nodeType 包含有关于节点的信息。
每个节点都有一个nodeType属性
值-元素类型
1-ELEMENT
2-ATTRIBUTE
3-TEXT
4-CDATA
5-ENTITY REFERENCE
6-ENTITY
7-PI (processing instruction)
8-COMMENT
9-DOCUMENT
10-DOCUMENT TYPE
11-DOCUMENT FRAGMENT
12-NOTATION
nodeName 属性含有某个节点的名称。
元素节点的 nodeName 是标签名称
属性节点的 nodeName 是属性名称
文本节点的 nodeName 永远是 #text
文档节点的 nodeName 永远是 #document
注释:nodeName 所包含的 XML 元素的标签名称永远是大写的
nodeValue
对于文本节点,nodeValue 属性包含文本。
对于属性节点,nodeValue 属性包含属性值。
nodeValue 属性对于文档节点和元素节点是不可用的。
2、节点关系
每一个节点都有一个childNodes属性,可以通过方括号也可以通过item()方法来访问
此外还有以下属性
parentNode
previousSibling
nextSibling
firstChild
lastChild
另外还有hasChildNodes()方法用来判断节点是否含有子节点
3、操作节点
appendChild()一个参数
insertBefore()两个参数,将第一个参数表示的节点插入到第二个参数表示的节点的前面,如果第二参数为null,则插入到最后
replaceChild()两个参数,将第二个参数表示的节点替换为第一个参数表示的节点
removeChild()一个参数
cloneNode()一个布尔参数,true表示深度复制,复制节点本身以及子节点,false表示只复制节点本身不复制子节点
二、Document类型
1、文档的子节点
document.documentElement指向html
document.body指向body
document.doctype
2、文档信息
document.title
document.URL
document,domain
document.referer
3、查找元素
document.getElementById()
document.getElementByTagName():返回NodeList,可以通过方括号访问也可以通过item()访问,如果参数为*,可以取得文档中所有元素
namedItem():通过元素的name属性从元素集合中取得如:document.getElementByTagName().namedItem()
document.getElementsByName()
4、特殊集合
document.anchors:文档中所有带name特性的<a>元素
document.forms:文档中所有<form>元素
document.images:文档中所有<img>元素
document.links:文档中所有带href特性的<a>元素
5、DOM一致性检测
document.implementation.hasFeature()
6、文档写入
document.write()
document.writeln()
document.open()
docuemnt.close()
三、Element类型
1、HTML元素标准特性
id
title
lang
dir
className对于class的值
这些属性可以被读取也可以被赋值修改
2、取得特性
getAttribute()
3、设置特性和删除
setAttribute()
removeAttribute()
4、attributes属性
包含一个NamedNodeMap,拥有如下方法
getNamedItem(name)
removeNamedItem(name)
setNamedItem(node)
item(pos)
与此对应的方法有getAttribute(),setAttribute(),removeAttribute()
四、Text类型
document.createTextNode()
splitText()
五、Comment类型
。。。。
Dom扩展
1、选择符
querySelector()只返回第一个匹配的元素
querySelectorAll()返回所有匹配的元素
2、元素遍历
以下只取得元素,不包括注释和文本节点
childElementCount子元素的个数
firstElementChild
lastElementChild
previuosElementSibling
nextElementSibling
3、HTML5
getElementByClassName()
classList属性包括的方法有:
add()
contains()
remove()
toggle()
插入标记
innerHTML属性
outerHTML属性
insertAdjacentHTML():两个参数,第一个参数必须如下
beforebegin
afterbegin
beforeend
afterend
scrollIntoView()参数为true或者false
children属性,与childNodes差不多,但是children只包括还是元素的子节点
插入文本
innerText
outerText