网页中的所有内容都是节点(标签、属性、文本、注释等)
节点一般分为下面3类:
- 元素节点:例如 div标签
- 属性节点:例如 class属性
- 文本节点:例如 文字、空格、换行等
节点的层级:
- 根节点:,有且只能有一个
- 父节点:某个节点的上一级节点
- 子节点:某个节点的下一级节点
- 兄弟节点:拥有同一个父节点的节点
1.父节点
父节点查找:
子元素.parentNode
返回最近一级的父节点,找不到则返回null
2.子节点
子节点查找:
2.1 childNodes:
父元素.childNodes
获得的是当前元素的所有子节点的集合
2.2 children属性:
父元素.children
只返回子元素节点(不返回属性节点、文本节点)
返回的是一个伪数组
2.3 返回第一个子节点
元素名.firstChild
2.4 返回最后一个子节点
元素名.lastChild
2.5 第一个子元素节点(不包含文本节点、属性节点)
元素名.firstElementChild
2.6 最后一个子元素节点(不包含文本节点、属性节点)
元素名 . lsstElementChild
3.兄弟节点
兄弟关系查找
3.1 获取下一个兄弟节点(包含元素节点、文本节点、属性节点)
元素名 . nextSibling
3.2 获取上一个兄弟节点(包含元素节点、文本节点、属性节点)
元素名 . previousSibling
3.3 下一个兄弟节点
元素.nextElementSibling
3.4 上一个兄弟节点
元素.previousElementSibling
4.创建一个新的网页元素,再添加到网页内
1.创建一个新的元素节点
document.createElement('标签名')
2.插入到某个父元素中/添加节点
插入到父元素的最后一个子元素:
父元素.appendChild(要插入的元素)
插入到父元素中某个子元素的前面
父元素.insertBefore(插入的元素, 放到哪个元素的前面)
5.克隆节点
克隆一个已经有的元素节点
元素.cloneNode(布尔值)
布尔值为true,深拷贝,代表克隆是会包含后代节点一起克隆
布尔值为false,浅拷贝,代表克隆是不包含后代节点,默认为false
6.删除节点
在JavaScript原生DOM中,要删除元素必须通过父元素删除
父元素.removeChild(要删除的元素)
这里要注意,如果不存在父子关系,删除则不成功
删除节点和隐藏节点(display:none)是有区别的:
隐藏的节点还存在,删除节点是直接从html中删除节点