首页 > 代码库 > 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