JavaScript常见DOM节点操作(查找、创建 、插入、复制、删除)

391 阅读2分钟

网页中的所有内容都是节点(标签、属性、文本、注释等)

20221022-202806.jpg 节点一般分为下面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中删除节点