dom定义了表示和修改文档所需的方法。dom对象即为数组对象,由浏览器厂商定义,用来操作html和xml功能的一类对象的集合。也有人称dom是对html以及xml的标准编程接口。
DOM基本操作
1.对节点的增删改查
A.查
1.查看元素节点
document代表整个文档。
document.getElementById() 元素id在le8以下的浏览器,不区分id大小写,而且也返回匹配name属性的元素。
.getElementsByTagName() 标签名。
getElementsByName() 需注意,只有一部分标签name可生效(表单,表单元素,img,iframe)。
.getElementsByClassName() 类名->ie8和ie8以下的ie版本中没有,可以多个class一起。
.querySelector() css选择器 在ie7和ie7以下的版本中没有。
.querySelectorAll() css选择器 在ie7和ie7以下的版本中没有。
get...查找的东西是实时的 querySelectorAll查找的东西是静态的。
2.遍历节点树:(不管什么类型的节点都能遍历)
parentNode->父节点(最顶端的parentNode为#document)
childNodes->子节点们
firstChild->第一个子节点
lastChild->最后一个子节点
nextSibling->后一个兄弟节点
previousSilbing->前一个兄弟节点
3.基于元素节点树的遍历:
parentElement->返回当前元素的父元素节点(ie不兼容)
children->只返回当前元素的元素子节点
node.childElementCount === node.children.length->当前元素节点的子元素节点个数(ie不兼容)
firstElementChild->返回的是第一个元素节点(ie不兼容)
lastElementChild->返回的是最后一个元素节点(ie不兼容)
nextElementSibling/previousElementSilbing->返回最后一个/前一个兄弟元素节点(ie不兼容)
4.节点的四个属性
nodeName->元素的标签名,以大写的形式表示,只读
nodeValue->Text节点或Comment节点的文本内容,可读写
nodeType->该节点的类型,只读 [IMPORTANT!!!!!!!!!] 任何元素都有的一个属性
attributes->Element节点的属性合集
5.节点的一个方法 Node.hasChildNodes();
6.dom结构树
dom结构树代表一系列的继承关系(就近继承)
原型链:document -->(继承自) HTMLDocument.prototype --> Document.prototype
HTMLDocument.prototype(对象) --> Document,prototype
HTMLDocument.prototype = {_proto_:Document,prototype;}
Document分为 HTMLDocument 和 XMLDocument
2.DOM的基本操作
1.getElementById方法定义在Document.prototype上,即Element节点上不能使用。
2.getElementsByName方法定义在HTMLDocument,prototype上,即非html中的document不能使用(xmldocument,Element)。
3.getElementsByTagName方法定义在Document.prototype和Element.prototype上。
4.HTMLDocument.prototype定义了一些常用的属性,body head分别指代HTML文档中的<body><head>标签
直接有 已经定义好的 可以直接用 document.body document.head
5.Document.prototype上定义了documentElement属性,指代文档的根元素,在XML文档中,他总指代<html>元素。
document.documentElement代表html
6.getElementsByClassName、querySelectorAll、quertSelector在Document.prototype,Element.prototype类中均有定义。