WebAPI(part8)--节点操作
学习笔记,仅供参考,有错必究
文章目录
- 节点操作
- 节点概述
- 节点层级
- 父节点
- 子节点
- 兄弟节点
- 创建节点
- 删除节点
- 复制节点
- 创建元素三种方式
节点操作
节点概述
网页中的所有内容都是节点(标签、属性、文本、注释等),在DOM 中,节点使用 node 来表示。
HTML DOM 树中的所有节点均可通过 JavaScript 进行访问,所有 HTML 元素(节点)均可被修改,也可以创建或删除。
一般地,节点至少拥有nodeType(节点类型)、nodeName(节点名称)和nodeValue(节点值)这三个基本属性。
| 元素节点 | 1 |
| 属性节点 | 2 |
| 文本节点 | 3 |
我们在实际开发中,主要操作的是元素节点。
- 举个例子
HTML:
<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head><body><div class="test01">我是div</div><script>var test01 = document.querySelector(".test01")console.dir(test01);</script> </body></html>控制台的部分输出:
nodeName: "DIV" nodeType: 1 nodeValue: null节点层级
父节点
利用 DOM 树可以把节点划分为不同的层级关系,常见的是父子兄层级关系:
node.parentNodeparentNode属性可返回某节点的父节点,注意!是最近的一个父节点。;
如果指定的节点没有父节点,则返回null.
子节点
获取所有子节点:
parentNode.childNodesparentNode.childNodes返回包含指定节点的子节点的集合,该集合为即时更新的集合。
注意,返回值里包含了所有节点,包括元素节点、文本节点等。
如果我们只想获取子元素节点,可以使用如下代码:
parentNode.childrenparentNode.children是一个只读属性,返回该节点所有的子元素节点,它只返回子元素节点,其他节点不返回。
第一个子节点:
parentNode.firstChild最后一个子节点:
parentNode.lastChild第一个子元素节点(IE9以上):
parentNode.firstElementChild最后一个子元素节点(IE9以上):
parentNode.lastElementChild在实际开发中,firstChild 和 lastChild 包含其他节点,操作不方便,而 firstElementChild 和 lastElementChild 又有兼容性问题,那么我们如何获取第一个子元素节点或最后一个子元素节点呢?解决方案如下:
<ol><li>我是li1</li><li>我是li2</li><li>我是li3</li><li>我是li4</li><li>我是li5</li> </ol> <script>//实际开发的写法 既没有兼容性问题又返回第一个子元素console.log(ol.children[0]);console.log(ol.children[ol.children.length - 1]); </script>兄弟节点
返回当前元素的下一个兄弟节点:
node.nextSibling返回当前元素的上一个兄弟节点:
node.previousSibling返回当前元素的下一个元素节点:
node.nextElementSibling返回当前元素的上一个元素节点:
node.previousElementSibling创建节点
创建节点:
document.createElement("tagName")将节点添加到指定父节点的子节点列表的末尾:
node.appendChild(child)将节点添加到指定父节点的指定子节点的前面:
node.insertBefore(child, 指定节点)删除节点
该方法从 node节点中删除一个子节点,返回删除的节点。
node.removeChild()- 举个例子
复制节点
该方法返回一个节点的副本:
node.cloneNode()注意,括号中,若填写的参数为false则为浅拷贝,只复制节点本身,不克隆里面的子节点;若为true则为深拷贝,则复制节点本身及节点内的所有子节点。
- 举个例子
创建元素三种方式
document.write() element.innerHTML document.createElement()- 举个例子
总结
以上是生活随笔为你收集整理的WebAPI(part8)--节点操作的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 十年结婚是什么婚 十年锡婚是什么意思
- 下一篇: WebAPI(part9)--下拉菜单及