DOM总结

DOM基础
节点层次
node类型
​ 1.属性:

​ | nodeName:保存的始终都是元素的标签名

​ | nodeValue :始终为 null

​ 2.操作节点:

​ l appendChild():向节点的childNodes列表末尾添加一个节点

​ 插入新节点:someNode.appendChild(newNode);

​ 移动节点到最后一位:someNode.appendChild(someNode.firstChild)

​ l insertBefore() : 插入节点,两个参数:第一个是要插入的节点,第二个是位置参照节点

​ someNode.insertBefore(newNode,null); //插入后成为最后一个节点

​ someNode.insertBefore(newNode,someNode.firstChild); //插入成为第一个节点

​ l replaceChild(): 替换节点。接收两个参数:要传入的节点和要替换的节点,父节点调用。

​ l removeChild():移除节点。接收一个参数:要移除的节点。

​ 子节点.parentNode.remove(子节点)

Document类型:(html文档)
​ 1.属性:

​ |nodeName:保存的始终都是#document

​ |nodeValue 的值则始终为 null

​ 2.查找元素:

​ |getElementById( ):通过ID来取得一个元素,id唯一

​ |getElementsByTagName( ): 通过标签名称来获得元素(div,p等)

​ |getElementsByName( )[0]:通过name来获得一类元素,name相同的元素,加个[0]获得这一类的第一个元素

​ |getElementsByClassname( ):使用指定的calss名称返回所有相关元素的集合(节点列表对象)

​ 3.文档写入:

​ |document.write()

​ |document.open()

​ |document.close()

element类型
​ 1.属性:nodeName为元素标签名 nodeValue为null

​ 2.特性(取的名字,自定义):

​ |getAttribute():获取特性

​ |setAttribute():设置特性

​ |removeAttribute():取消特性

​ 3.attributes属性:

​ |getNamedItem(name)返回nodeName属性等于name的节点

​ |removeNamedItem(name)从列表移除nodeName等于name的节点

​ |setNamedItem(node)向列表添加节点,以节点的nodeName属性为索引

​ |item(pos)返回处于数字pos位置处的节点

​ 4.创建元素:document.creatElement()

text类型
​ 1.属性:nodeName为"#text" nodeValue为节点所包含的文本

​ 2.操作文本节点:

​ l appendData(text):将 text 添加到节点的末

​ l deleteData(offset, count):从 offset 指定的位置开始删除 count个字符。

​ l insertData(offset, text):在 offset 指定的位置插入文本

​ l replaceData(offset, count, text):用 text 替换从 offset 指定的位置开始到 offset+ count 为止处的文

​ l splitText(offset):从 offset 指定的位置将当前文本节点分成两个文本节点

​ l substringData(offset, count):提取从 offset 指定的位置开始到 offset+count 为止 处的字符串

​ l document.createTextNode():创建文本节点

拓展技术
querySelector()
​ 接收一个CSS选择符,返回与该模式匹配的第一个元素

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KDhXe74L-1595406950851)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\1595340207877.png)]

querySelectorAll( )
​ 返回的值实际上是带有所有属性和方法的 NodeList对象。要返回nodelist所有元素,可以用item()方法,也可以用括号语法

DOM2和DOM3
元素大小
1.偏移量:

​ |offsetHeight:元素在垂直方向上占用的空间大小。包括元素的高度、(可见的)水平滚动条的高度、上边框高度和下边框高度。

​ |offsetWidth:元素在水平方向上占用的空间大小。包括元素的宽度、(可见的)垂直滚动条的宽度、左边框宽度和右边框宽度。

​ |offsetTop:元素的上外边框至包含元素的上内边框之间的像素距离

offsetLeft:元素的左外边框至包含元素的左内边框之间的像素距离

客户区大小:元素内容及其内边距所占据的空间大小

| clientWidth:元素内容区宽度加左右内边距宽度

|clientHeight:元素内容区高度加上下内边距高度

滚动大小:包含滚动内容的元素的大小

|scrollHeight:在没有滚动条的情况下,元素内容的总高度。

|scrollWidth:在没有滚动条的情况下,元素内容的总宽度

|scrollLeft:被隐藏在内容区域左侧的像素数。通过设置这个属性可以改变元素的滚动位置。

|scrollTop:被隐藏在内容区域上方的像素数。通过设置这个属性可以改变元素的滚动位置。

scrollWidth – scrollLeft == clientWidth 说明水平滚动条到底了

scrollHeight – scrollTop == clientHeight 说明垂直滚动条到底了

遍历
NodeIterator:用 document.createNodeIterator(),接收4个参数,具体看书

TreeWalker:用document.createTreeWalker(),接受4个参数(同上)除了nextNode()和 previousNode()的功能之外:

|parentNode():遍历到当前节点的父节点;

|firstChild():遍历到当前节点的第一个子节点;

|lastChild():遍历到当前节点的后一个子节点;

|nextSibling():遍历到当前节点的下一个同辈节点;

|previousSibling():遍历到当前节点的上一个同辈节点。

DOM深入
DOM查询
​ 1.获取元素节点:document.getElementsbyTagname

​ 2.获取元素节点的子节点:

​ l getElementsbyTagname通过具体的元素节点调用 (var出来的)

​ l 所有子节点:city.childNodes (会获取文本,注释,空格,换行)

​ l 所有子元素(标签):city.children

​ l firstChild/lastChild:第一个子节点和最后一个子节点

​ l firstElementChild/lastElementChild:第一个和最后一个元素节点

​ 3.获取父节点和兄弟节点:

​ l parentNode:当前节点的父节点

​ l previousSibling:当前节点前一个兄弟节点(previousElementSibling:当前节点前一个兄弟元素)

​ l nextSibling:当前节点后一个兄弟节点

​ l nextElementSibling:当前节点后一个兄弟元素

​ 4.获取元素的样式:

​ l 直接设置style的属性(内联样式优先):element.style.height = ‘100px’; 如果设置了*!important则无效,若属性中有 - ,则采用驼峰式*命名

​ l 正常浏览器:getComputedStyle(element,null).height

​ l IE8及以下:element.cueerentStyle.height

​ l length 属性与item()方法配套使用,以便迭代在元素中定义的 CSS属性,此时style相当于一个集合,可以使用方括号语法来代替item()来取得给定位置的 CSS属性

disabled:表示样式表是否被禁用的布尔值。这个属性是可读/写的,将这个值设置为 true 可以禁用样式表。
事件对象
https://www.runoob.com/jsref/dom-obj-event.html

​ l当事件的响应函数被触发,浏览器都会将一个事件对象作为实参传进函数里,在事件对象中封装了当前事件相关的一切信息 (下面例子中的event就是一个鼠标移动事件的object)
————————————————
版权声明:本文为CSDN博主「YogaLin_qwq」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YogaLin_qwq/article/details/107516921

你可能感兴趣的:(DOM总结)