JS进阶DAY4|节点操作
嘿👋 今天我们要一起深入探索JavaScript中的DOM操作,这是前端开发中不可或缺的技能。🌟 准备好了吗?让我们一起跳进DOM的海洋,看看怎么用代码操控网页的结构吧!
目录
1. 增加节点
1.1 使用 appendChild 方法
1.2 使用 insertBefore 方法
1.3 使用 insertAdjacentElement 方法
2. 删除节点
2.1 删除指定的节点
3. 克隆节点
3.1 克隆一个节点
3.2 将克隆的节点添加到DOM中
4. 删除克隆节点
4.1 删除克隆的节点
1. 增加节点
在DOM中增加节点就像是在一棵树上添加新的枝叶。我们有几种方法可以实现这一点。
1.1 使用 appendChild 方法
这是最基本的方法,用于将新节点添加到指定的父节点中。
// 创建一个新的元素节点let newNode = document.createElement('div');// 为新节点添加内容newNode.innerHTML = 'Hello, DOM!';// 获取要添加到的父节点let parent = document.getElementById('parentElement');// 将新节点添加到父节点中parent.appendChild(newNode);
1.2 使用 insertBefore 方法
如果你想要在一个已存在的节点前插入新节点,可以使用 insertBefore 方法。
// 创建一个新的元素节点let newNode = document.createElement('div');newNode.innerHTML = 'Before Existing Node';// 获取要插入的参考节点let referenceNode = document.getElementById('referenceElement');// 获取父节点let parent = referenceNode.parentNode;// 在参考节点前插入新节点parent.insertBefore(newNode, referenceNode);
1.3 使用 insertAdjacentElement 方法
这个方法允许你将元素插入到另一个元素的前后或子元素之前。
// 创建一个新的元素节点let newNode = document.createElement('div');newNode.innerHTML = 'Adjacent Element';// 获取要操作的元素let parent = document.getElementById('parentElement');// 在元素的末尾插入新节点parent.insertAdjacentElement('beforeend', newNode);
2. 删除节点
删除DOM中的节点就像是修剪枝叶,我们可以用 removeChild 方法来实现。
2.1 删除指定的节点
// 获取要删除的节点let nodeToDelete = document.getElementById('nodeToDelete');// 从DOM中移除节点if (nodeToDelete.parentNode) {nodeToDelete.parentNode.removeChild(nodeToDelete);}
3. 克隆节点
克隆DOM中的节点就像是复制一棵树的枝叶。我们可以用 cloneNode 方法来实现。
3.1 克隆一个节点
// 获取要克隆的节点let nodeToClone = document.getElementById('nodeToClone');// 克隆节点,deep参数为true表示克隆所有子节点let clonedNode = nodeToClone.cloneNode(true);// 为克隆的节点添加内容或修改属性clonedNode.innerHTML = 'This is a cloned node';
3.2 将克隆的节点添加到DOM中
// 获取要添加到的父节点let parent = document.getElementById('parentElement');// 将克隆的节点添加到父节点中parent.appendChild(clonedNode);
4. 删除克隆节点
删除克隆节点和删除普通节点的过程是一样的。
4.1 删除克隆的节点
// 获取要删除的克隆节点let clonedNodeToDelete = document.getElementById('clonedNodeToDelete');// 从DOM中移除克隆节点if (clonedNodeToDelete.parentNode) {clonedNodeToDelete.parentNode.removeChild(clonedNodeToDelete);}
好啦,我们今天的JavaScript DOM操作之旅就到这里啦!🚀 DOM操作是前端开发中非常基础且重要的技能,掌握它们可以让你在构建网页时更加得心应手。
如果你有任何疑问,或者想要更多地了解这个话题,随时欢迎留言哦!我们下次再见啦!👋
相关文章:
JS进阶DAY4|节点操作
嘿👋 今天我们要一起深入探索JavaScript中的DOM操作,这是前端开发中不可或缺的技能。🌟 准备好了吗?让我们一起跳进DOM的海洋,看看怎么用代码操控网页的结构吧! 目录 1. 增加节点 1.1 使用 appendChild 方…...
【Web】2023安洵杯第六届网络安全挑战赛 WP
目录 Whats my name easy_unserialize signal Swagger docs 赛题链接:GitHub - D0g3-Lab/i-SOON_CTF_2023: 2023 第六届安洵杯 题目环境/源码 Whats my name 第一段正则用于匹配以 include 结尾的字符串,并且在 include 之前,可以有任…...
go 语言中协程和GMP模型
为什么需要协程? 协程用来更加精细地利用线程,支撑超高的并发的。协程,从 runtime 的角度看,协程就是一个被调度的 g 结构体。 G 就是协程,M 是线程,P 是为了优化多线程并发时,会抢夺协程队列的…...
coco数据集转换SAM2格式
coco是一个大json汇总了所有train的标签 SAM2训练一张图对应一个json标签 import json import os from pycocotools import mask as mask_utils import numpy as np import cv2def poly2mask(points, width, height):points_array np.array(points, dtypenp.int32).reshape(-…...
【CMD、PowerShell和Bash设置代理】
【CMD、PowerShell和Bash设置代理】 1. CMD(命令提示符)临时设置代理(只对当前会话有效):查看当前代理设置:清除临时代理设置:永久设置代理(对所有新的 CMD 会话有效)&am…...
22智能 代码作业集合
3-2 #include <stdio.h>int main() {int a 21;int b 10;int c ;c a b;printf("Line 1 - c 的值是 %d\n", c );c a - b;printf("Line 2 - c 的值是 %d\n", c );c a * b;printf("Line 3 - c 的值是 %d\n", c );c a / b;printf("…...
实现一个简单的后台架子(侧边栏菜单渲染,折叠,黑白主题,组件主题色,全屏,路由快捷栏)
目录 侧边栏菜单渲染 侧边栏折叠 黑白主题 全屏切换 切换组件主题色 tab快捷栏 代码 侧边栏菜单渲染 结合ElementPlus组件库进行实现 新建的Vue3项目,引入了格式化样式normalize.css和ElementPlus,并进行了全局引入 并进行了全局引入 设置高度为100% 粘贴ElementPlus的…...
vue3-canvas实现在图片上框选标记(放大,缩小,移动,删除)
双图版本(模板对比) 业务描述:模板与图片对比,只操作模板框选的位置进行色差对比,传框选坐标位置给后端,返回对比结果显示 draw.js文件: 新增了 createUuid,和求取两个数组差集的方…...
unity3d—demo(2d人物左右移动发射子弹)
目录 人物代码示例: 子弹代码示例: 总结上面代码: 注意点: 人物代码示例: using System.Collections; using System.Collections.Generic; using UnityEngine;public class PlayerTiao : MonoBehaviour {public f…...
【ETCD】【源码阅读】 深入解析 raftNode.start`函数:Raft 核心启动逻辑剖析
raftNode.start方法 是 etcd 中 Raft 模块的核心启动点,其职责是管理 Raft 状态机的状态变迁、日志处理及集群通信等逻辑。通过对源码的逐行分析,我们将全面揭示其运行机制,探讨其设计背后的分布式系统理念。 函数核心结构 raftNode.start 方…...
Robust Depth Enhancement via Polarization Prompt Fusion Tuning
paper:论文地址 code:github项目地址 今天给大家分享一篇2024CVPR上的文章,文章是用偏振做提示学习,做深度估计的。模型架构图如下 这篇博客不是讲这篇论文的内容,感兴趣的自己去看paper,主要是分享环境&…...
NEFTune,SFT训练阶段给Embedding加噪音
仿照CV里,数据增强的思路(给图像做旋转、反转、改变亮度等);NLP里,SFT训练数据较少时,也可往embedding上加噪音,来增加训练数据的丰富程度。进而提升最终训练效果。 前提假设:Embed…...
uniapp -- 实现页面滚动触底加载数据
效果 首选,是在pages.json配置开启下拉刷新 {"path": "pages/my/document/officialDocument","style": {"navigationStyle":</...
L22.【LeetCode笔记】相交链表(新版)
目录 1.题目 代码模板 2.分析 编辑 算法误区 正确方法1 但不能通过所有的测试用例 修改后 提交结果 正确方法2 节省代码的技巧 1.题目 https://leetcode.cn/problems/3u1WK4/description/ 给定两个单链表的头节点 headA 和 headB ,请找出并返回两个单…...
智能时代网络空间认知安全新观察
文章目录 前言一、历史上的四次认知革命二、人工智能革命掀起认知安全新浪潮三、人工智能技术塑造认知安全新范式四、人工智能治理应对认知安全新思考 前言 12月5日,在2024第三届北外滩网络安全论坛上以“智能时代网络空间认知安全新观察”为主题作主旨演讲&#x…...
游戏如何应对模拟器作弊
模拟器是指能在PC端模拟出安卓手机系统的软件,市面上比较常见的安卓模拟器有:雷电模拟器、MuMu模拟器、夜神模拟器等。 市面上常见的模拟器 模拟器既可以节省手机内存空间,避免长时间玩游戏手机发烫发热的尴尬,也可以用键盘鼠标对…...
c++ 判断一个 IP 地址(可能是 IPv6 或 IPv4)是否属于特定范围
在 C 中,判断一个 IP 地址(可能是 IPv6 或 IPv4)是否属于特定范围时,需要考虑两种不同的地址格式和它们的范围比较。IPv6 和 IPv4 地址结构完全不同,因此需要分别处理这两种地址类型。 实现思路: 识别 IP…...
计算机视觉——相机标定(Camera Calibration)
文章目录 1. 简介2. 原理3. 相机模型3.1 四大坐标系3.2 坐标系间的转换关系3.2.1 世界坐标系到相机坐标系3.2.2 相机坐标系到图像坐标系3.2.3 像素坐标系转换为图像坐标系3.2.4 世界坐标转换为像素坐标 3.3 畸变3.3.1 畸变类型3.3.1.1 径向畸变(Radial Distortion&a…...
【qt环境配置】windows下的qt与vs工具集安装\版本对应关系
vs工具集安装通过vs的在线安装器勾选工具集即可 工具包下载路径:https://www.microsoft.com/zh-cn/download/details.aspx?id40784 配置工具集在qt中可以自动扫描到 《正确在 Windows 上配置 MSVC(2019) 作为 Qt 编译器》https://b3logfile.com/pdf/article/15922…...
GitHub使用
太久不用GitHub发现自己又有些不会了,突发奇想为何不把每次看到的有指导意义的博客收录一下以便下次查阅呢 如何上传文件夹到GitHub上(配图详解)?_github上傳資料夾-CSDN博客 github上如何删除自己的仓库_github删除仓库-CSDN博…...
元宇宙时代的社交平台:Facebook的愿景与实践
随着科技的不断进步,元宇宙(Metaverse)这一概念逐渐走进了人们的视野。作为全球最大的社交平台之一,Facebook(现Meta)在这场元宇宙革命中扮演着重要角色。Meta不仅在不断扩展其社交平台的边界,还…...
vue2中各种钩子函数的总结以及使用场景
在 Vue 2 中,生命周期钩子函数是 Vue 实例在不同阶段自动调用的函数。这些钩子允许开发者在组件的创建、更新和销毁的特定时刻插入自定义逻辑。以下是 Vue 2 中的各种生命周期钩子函数的总结及其使用场景。 生命周期钩子函数总结 1、beforeCreate 调用时机&#…...
软件架构:从传统单体到现代微服务的技术演变
1.引言 在软件开发中,架构设计不仅仅是程序员的技术任务,它更是一个项目成功的关键。无论是小型应用还是大型分布式系统,软件架构都直接影响着系统的可维护性、可扩展性、性能和稳定性。理解软件架构的必要性,能够帮助开发人员做…...
git新建远程分支后,无法切换
git remote # 列出所有远程主机 git remote update origin --prune # 更新远程主机origin 整理分支 git branch -r # 列出远程分支 git branch -vv # 查看本地分支和远程分支对应关系 git checkout -b gpf origin/gpf # 新建本地分支gpf与远程gpf分支相关…...
【SpringBoot】31 Session + Redis 实战
Gitee https://gitee.com/Lin_DH/system 介绍 【SpringBoot】30 Cookie、Session、Token https://blog.csdn.net/weixin_44088274/article/details/144241595 背景 Spring Session 是 Spring 的一个子项目,它提供了一种管理用户会话信息的方法,无论…...
在Windows环境下的rknn-toolkit环境搭建
首先安装好conda,我是用的是anaconda,miniconda也可以。 下载rknn_toolkit的轮子。可以直接在瑞芯微的git仓库中下载,地址为:github.com/rockchip-linux/rknn-toolkit/releases。我这里下载的是1.7.5版本的。选择rknn-toolkit-v1.…...
Facebook广告突然无消耗?原因解析与解决方案。
在Facebook广告投放中,广告突然无消耗是很多广告主都会遇到的难题。这种情况不仅浪费时间,还可能导致营销活动停滞,影响业务发展。那么,广告无消耗的原因是什么?又该如何解决呢? 一、Facebook广告无消耗的…...
Rabbitmq 镜像队列
RabbitMQ 支持高可用性队列(HA Queues),可以在多个节点之间复制队列,确保即使某个节点失败,消息仍然可用。将 RabbitMQ 部署为集群,确保高可用性和负载均衡。 RabbitMQ 的镜像队列集群(Mirrore…...
TensorBoard
1、TensorFlow的TensorBoard TensorBoard是TensorFlow的一个组件,它提供了一个交互式的界面,用于可视化TensorFlow程序的训练过程和模型结构。 使用TensorBoard,你可以: 可视化训练过程中的各种指标,如损失函数、准…...
运维实战:K8s 上的 Doris 高可用集群最佳实践
今天我们将深入探讨::如何在 K8s 集群上部署 Compute storage coupled(存算耦合) 模式的 Doris 高可用集群? 本文,我将为您提供一份全面的实战指南,逐步引导您完成以下关键任务: 配…...
wordpress更改地址后404.3/重庆百度开户
1.成瘾行为的特征有()。 A.心理性依赖 B.社会性依赖 C.生理性依赖 D.一旦恢复成瘾行为阶段症状消失 E.终止使用成瘾物质会引起戒断症状 2.健康风险评估的作用包括 A.健康干预措施的制订 B.健康危险因素的认识 C.健康保险费用的预测 D.健康管理人群的分…...
曹县住房和城乡建设局网站/百度学术论文查重官网
作者:Cary G.Gray and David R. Cheriton 1989 译者:phylipsbmy 2011-5-7 出处:http://duanple.blog.163.com/blog/static/70971767201141111440789/ [ 序:所谓租约(leases),其实就是一个合同,即服务端给予…...
做网页和做网站的区别/怎么免费建个人网站
Python第二十一课(反射/元类) >>>思维导图>>>中二青年 反射reflect 什么是反射, 其实是反省,自省的意思 反射指的是一个对象应该具备,可以检测,修改,增加自身属性的能力 反射就是通过字符串操作属性 涉及的四个函数,这四个函数就是普通的内置函数 没有双下…...
境外社交网站上做推广/深圳市seo上词多少钱
获取输入法候选列表Description: In the following article we are going to learn how to solve problem of such type using class definitions. 说明:在下面的文章中,我们将学习如何解决使用类定义这种类型的问题。 Problem statement: 问题陈述&…...
政府网站建设管理经验汇报材料/成都网络营销推广
dagger2 和 RxJava butterknife 以及 Retrofit使用起来非常酸爽 代码非常干净清晰 动手尝试 配置编译 DaggerAppComponent的时候 出现问题 配置dagger2 在 Application中能够顺利编译,但是添加完 butterknife之后 Application中的 DaggerAppComponent编译失败。原来是dagger2和…...
wordpress和avada/广告投放代理商加盟
一:empty();判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。 返回值 当var存在,并且是一个非空非零的值时…...