一、概念:
文档对象模型(document object model),又被称为文档模型, 操作HTML和XML文档的API
DOM可以把HTML和XML描述为一个文档,树上的每一个分支 都可以视为一个对象,通过DOM可以添加,修改和移出文档上的 某一部分
DOM就是把HTML视为一个层次结构(树形)的文档
文档(document):指的是HTML XML文件
节点(node):HTML中所有的内容都可以称为节点
元素(element):HTML中所有的标签都可以称为元素
文档元素(根元素):文档中的第一个元素,HTML文档元素即 <html>
文本节点
属性节点
父节点parent
子节点child
兄弟节点sibling
二、DOM可以做什么?
找对象(元素)
设置元素的属性
设置元素的样式
动态创建和删除元素
事件-触发响应
-事件的触发者
-事件的名称
-事件响应程序
三、DOM操作
1.从一个中心元素访问其所有的直系亲属元素
访问父节点parentNode
访问上一个兄弟节点previousSibling
访问下一个兄弟节点nextSibling
访问第1个属性节点attributes[1]
访问最后一个节点
lastChild 或 childNodes[childNode.length-1]
2.增加
(1)创建
document.creatElement创建元素
document.creatTextNode创建文本节点
document.creatAttribute创建属性节点
innerText只能获取内容
innerHtml获取内容和标签
cloneNode克隆节点(cloneNode里面有参数,如果 是false,表示只克隆当前节点,其子节点不可隆,如果 参数是true,当前节点和子节点一起克隆,也就是深克隆, 其实和深拷贝是一个意思,克隆不考虑事件,只克隆节点)
(2)加入
appendChild追加到结尾处
innerHTML
insertBefore将元素插入到某一个元素的前面
用法 父元素.insertBore(新元素,旧元素);
将新元素插入到旧元素前面
在js中需要使用父元素调用的方法不多,都需要记住
(3)其他
style的操作
setAttribute(属性名,属性值)
3.删除
removeChild
removeAttribute
4.修改
(1)修改节点 先删除在加入
(2)修改文本
innerText
innerHTML
节点操作
nodeValue
(3)修改样式
Style.xxx=vvv
setAttribute
(4)修改属性
.xxx=vvv
setAttribute
5.查询(即获取元素)
标准DOM API
document.getElementById
document.getElementByTagName
document.getElementByName
document.getElementByClassName
document.querySelctorAll