当前位置: 首页 > news >正文

【Web API DOM11】节点操作

目录

一:DOM节点

1 什么是DOM节点

2 DOM节点分类

二:节点查找(元素节点)

1 节点关系

父节点

子节点

兄弟节点

三:增加节点

1 创建节点

2 追加节点

2 案例:渲染数据

案例中核心代码块

样式

四:节点克隆(元素节点)

1 基础知识

五:删除节点(元素节点)

语法格式:


一:DOM节点

1 什么是DOM节点

DOM树里每一个内容都称为节点

2 DOM节点分类

元素节点

属性节点:a标签的href、img标签的src等

文本节点:标签中的文字

上图为整个DOM树,每个标签、以及标签属性、文本内容构成了DOM树

二:节点查找(元素节点)

节点查找依据的是节点之间关系进行查找,查找后返回的都是对象,这与通过document.querySelector()查找返回类型是一致的

1 节点关系

  1. 父节点

    1. 语法格式:子元素.parentNode
    2. 只能查找最近一级的父级元素,如果没有返回null
  2. 子节点

    1. 两种查找方式
      1. 父元素.childNodes(不重要)
        1. 获取的是所有元素节点、文本节点、注释节点
      2. 父元素.children(重点)
        1. 仅获得所有元素节点
        2. 返回的是伪数组
  3. 兄弟节点

    1. 两种属性,获取元素对象的同级元素对象
      1. 元素对象.nextElementSibling
      2. 元素对象.previousElementSibling

三:增加节点

节点添加分为创建节点、追加节点两步

1 创建节点

语法格式:cosnt 变量名= document.creatElement('元素标签')

2 追加节点

  1. 在父元素末尾追加节点
    1. 语法格式:父元素.appendChild(存储创造节点的变量名)
  2. 在父元素最前方追加节点
    1. 语法格式:父元素.insertBefore(添加哪一个元素,放到哪个元素前面)

2 案例:渲染数据

案例中核心代码块

创建li标签,将li标签中内容利用模板字符串修改,最后在追加到ul中

        // 1 遍历数组,创建节点、插入节点const ul = document.querySelector('.box-bd ul')for (let index = 0; index < data.length; index++) {const li = document.createElement('li')li.innerHTML = `<a href="#"><img src="${data[index].src}" alt=""><h4>${data[index].title}</h4><div class="info"><span>高级</span> • <span>${data[index].num}</span>人在学习</div></a>`ul.insertBefore(li, ul[index])//追加内容}

样式

有兴趣的朋友可以下载源码练习

四:节点克隆(元素节点)

1 基础知识

语法格式:
待克隆的元素.cloneNode(布尔值)

  • 若为true,则代表会克隆元素内容节点以及所有后代元素节点
  • 若为false,则代表只克隆当前元素节点,元素中文本节点以及后代元素节点都不克隆
  • 默认为false

五:删除节点(元素节点)

语法格式:

父元素.removeChild(要删除的元素)

注:

删除的是存在父子级关系的元素,如果不存在该关系,则删除不成功

http://www.lryc.cn/news/371272.html

相关文章:

  • Unity 设置窗口置顶超级详解版
  • 编程后端:深入探索其所属的行业领域
  • ubuntu18.04离线源制作
  • 【DPDK学习路径】八、轮询
  • Mac环境下,简单反编译APK
  • 027、工具_redis-benchmark
  • 京准电钟 | 对比GPS,北斗卫星授时的场景有哪些?
  • 电脑桌面提醒做事的app 好用的桌面提醒app
  • ICC2:如何获取get_xx -filter后可用的属性有哪些?
  • SSL协议在实际生活中有哪些应用实例?
  • Python连接到Jira实例、登录、查询、修改和创建bug
  • 等保测评考试初级题大题部分
  • 【前端面试】动态表单篇
  • Mybatis save、saveOrUpdate、update的区别
  • 立创·天空星开发板-GD32F407VE-Timer
  • 赚流量卷,晚点删
  • 36、matlab矩阵特征值、特征向量和奇异值
  • 【网络编程】基于TCP的服务器端/客户端
  • 企业中的绩效管理
  • C++面试八股文:static和const的关键字有哪些用法?
  • Qt飞机大战小游戏
  • Flarum 安装和使用教程
  • Java老人护理上门服务类型系统小程序APP源码
  • Spring Boot整合Knife4j-3.0.3
  • 使用R语言生成CDISC SDTM.AE domain
  • 怎么防止源代码泄露?9种方法教会你!
  • 原生JS如何实现可配置DM码
  • 【Python】Python开发面试题库:综合考察面试者能力
  • 大语言模型的sft
  • Astar路径规划算法复现-python实现