JS-DOM节点

本文详细介绍了DOM节点的类型(如元素、文本、属性和注释),以及如何通过各种方法获取、创建、插入、替换、克隆、移除节点,以及使用文档碎片提高操作效率。
摘要由CSDN通过智能技术生成

DOM节点介绍

  • 节点:浏览器页面文档中一个个小小的组成部分
  • DOM节点有很多类型,常见DOM节点类型:
    1. 元素节点:页面标签元素,组成html页面的结构
    2. 文本节点:标签包裹的文本内容(包括空格、换行等)
    3. 属性节点:用于描述标签元素的节点,不能独立存在
    4. 注释节点:html页面中的注释内容
<div class="box">
    你好
    <span>hello</span>
    世界
    <span>world</span>
    <!-- 我是注释内容 -->
</div>
  • div.box元素节点内有哪些节点?
    1. 文本节点:一个换行 + 四个空格 + 你好 + 一个换行 + 四个空格
    2. 元素节点:span元素
    3. 文本节点:一个换行 + 四个空格 + 世界 + 一个换行 + 四个空格
    4. 元素节点:span元素
    5. 文本节点:一个换行 + 四个空格
    6. 注释节点:我是注释内容
    7. 文本节点:一个换行
  • 注意:js中所有的节点都是复杂类型数据

节点获取

  • 之前学习过的DOM节点获取方法
    • 非常规获取元素节点
      • document.documentElement
      • document.head
      • document.body
      • document.scripts
      • docuemnt.images
      • document.forms
    • 常规获取元素节点
      • 元素.getElementById
      • 元素.getElementsByClassName
      • 元素.getElementsByTagName
      • 元素.querySelector
      • 元素.querySelectorAll
  • 新的DOM节点获取方法
    • 子节点获取
      1. childNodes
        • 语法:节点.childNodes
        • 获取节点的所有子节点组成的伪数组
      2. children
        • 语法:节点.children
        • 获取节点的所有子元素节点组成的伪数组
      3. firstChild
        • 语法:节点.firstChild
        • 获取节点的第一个子节点
      4. lastChild
        • 语法:节点.lastChild
        • 获取节点的最后一个子节点
      5. firstElementChild
        • 语法:节点.firstElementChild
        • 获取节点的第一个子元素节点
      6. lastElementChild
        • 语法:节点.lastElementChild
        • 获取节点的最后一个子元素节点
    • 兄弟节点获取
      1. previousSibling
        • 语法:节点.previousSibling
        • 获取节点的上一个兄弟节点
      2. nextSibling
        • 语法:节点.nextSibling
        • 获取节点的下一个兄弟节点
      3. previousElementSibling
        • 语法:节点.previousElementSibling
        • 获取节点的上一个兄弟元素节点
      4. nextElementSibling
        • 语法:节点.nextElementSibling
        • 获取节点的下一个兄弟元素节点
    • 父节点获取
      1. parentNode
        • 语法:节点.parentNode
        • 获取节点的父节点
      2. parentElement
        • 语法:节点.parentElement
        • 获取节点的父元素节点
    • 属性节点获取
      1. attributes
        • 语法:节点.attributes
        • 获取节点所有的属性节点组成的伪数组

节点属性

  • 节点属性:所有节点描述、节点特点信息的属性
  • 属性节点:节点的一个类型(不要搞混)
  • 常见的节点属性
    • 节点类型
      • 语法:节点.nodeType
      • 以数值的形式返回,以区分不同类型的节点
        • 元素节点:1
        • 属性节点:2
        • 文本节点:3
        • 注释节点:8
    • 节点名称
      • 语法:节点.nodeName
      • 以字符串的形式返回
        • 元素节点:元素标签名的大写
        • 属性节点:属性名
        • 文本节点:#text
        • 注释节点:#comment
    • 节点值(内容)
      • 语法:节点.nodeValue
        • 元素节点:null
        • 文本节点:文本内容
        • 属性节点:属性值
        • 注释节点:注释内容

节点创建

  1. createTextNode
    • 语法:document.createTextNode(文本内容)
    • 返回一个创建好的文本节点
  2. createElement
    • 语法:document.createElement(标签名)
    • 返回一个创建好的元素节点

节点插入

  1. appendChild
    • 语法:节点.appendChild(插入的节点)
    • 将传入的节点插入到元素节点内的最后
  2. insertBefore
    • 语法:节点.insertBefore(插入的节点, 在哪个子节点前插入)
    • 将传入的节点插入到元素节点的某一个子节点前

节点替换

  1. replaceChild
    • 语法:节点.replaceChild(替换上的节点, 替换下的节点)
    • 替换元素节点内的某一个子节点
  2. replaceWith
    • 语法:节点.replaceWith(替换上的节点)
    • 节点替换

节点克隆

  • cloneNode
    • 语法:节点.cloneNode()
      • 如果不传参数或传递false则默认克隆节点本身(不包括后代节点)
      • 如果传入true实参,则克隆节点本身及其后代节点
    • 返回值:克隆后的节点

节点移除

  1. removeChild
    • 语法:节点.removeChild(移除的子节点)
    • 移除节点的某一个子节点
  2. remove
    • 语法:节点.remove()
    • 移除节点本身

文档碎片

  • 语法:document.createDocumentFragment()
  • 作用:避免频繁操作页面DOM元素,解决操作效率低的问题
  • 返回值:一个文档碎片节点
  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Turbosaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值