javaScript:节点操作

news2024/11/27 11:53:29

目录

前言

常用的节点操作

innerHTML 的两个弊端(补充)

createElement(标签名)使用dom方法创建一个元素

父元素.appendChild(子元素) 添加到父元素

 注意

指定插入   父元素.insertBefore(要添加的元素,父元素中的指定子元素) 

注意:

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

补充内容 

案例 

效果图

核心代码 

元素的替换 :被替换元素的父级.replaceChild(替换的元素,被替换的元素);

克隆: 被克隆的元素对象.cloneNode()


前言

        在JavaScript中,节点操作是指通过操作DOM(文档对象模型)中的节点来动态修改网页的结构和内容。DOM表示网页的层次结构,可以通过JavaScript来访问和操纵DOM节点。节点是DOM树中的基本单元,可以是元素节点、文本节点、属性节点等。节点操作包括创建、添加、删除、替换和修改节点的属性或内容等操作。

常用的节点操作

innerHTML 的两个弊端(补充)

innerHTML 的两个弊端

1.他会引起页面底层的重新渲染,每一次重新渲染都会重新刷新元素中的内容,

在刷新之后,元素不在是原来的那个元素,那么次元素绑定的所有事件都不会生效

2.正是因为innerHTML会引起页面底层的重新渲染,这样比较耗时,性能比较低

createElement(标签名)使用dom方法创建一个元素

      createElement(标签名)使用dom方法创建一个元素,创建之后的元素可以使用任何元素具有的方法

父元素.appendChild(子元素) 添加到父元素

父元素.appendChild(子元素)把指定的子元素添加到父元素的最后面 

//创建一个p标签
let p =document.createElement('p');
    p.innerHTML = '梦到找厕所';
    //把创建的标签添加到父元素中
    wp2.appendChild(p);

 注意

        如果需要使用innerHTML,尽量在for循环外部使用,尽可能的不要在for循环内部使用innerHTML

        如果元素内部有事件操作,则可以使用,createElement创建元素,如果展示信息,则可以使用innerHTML

指定插入   父元素.insertBefore(要添加的元素,父元素中的指定子元素) 

父元素.insertBefore(要添加的元素,父元素中的指定子元素)

       把要添加的元素(参数1),添加到 父元素中的指定子元素(参数2) 之前

注意:

        使用该方法一定要两个参数,如果第二个元素不存在或者不合法,则会把元素添加到 父元素的末尾,类似appendChild()

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

删除元素

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

参数必须是一个元素对象,否则报错

返回值是删除的对象

删除元素之前必须要先找到元素

补充内容 

       confirm(对话内容)他是一个对话框,如果用户点击确定,就返回ture,否则返回false,因此常在if语句中用来判断用户的某项操作。

案例 

效果图

核心代码 

let del = document.querySelector('#del')
//点击删除
del.onclick = function(){
    //获取要删除的元素
    let first = document.querySelector('#list>li:nth-child(1)');
    if (confirm('你确定要删除吗?')) {
        list.removeChild(first);
        alert('删除成功')
    }
    
}

元素的替换 :被替换元素的父级.replaceChild(替换的元素,被替换的元素);

元素的替换

被替换元素的父级.replaceChild(替换的元素,被替换的元素);

返回值是被替换的元素对象

aa('#btn').onclick = function(){
    let h2 = document.createElement('h2');
    h2.innerHTML = '多少楼台烟雨中';

    aa('.wp').replaceChild(h2,aa('.h1'));
}

克隆: 被克隆的元素对象.cloneNode()

被克隆的元素对象.cloneNode();

参数默认是flase

false:不复制子级中的dom结构和节点

turn:深层拷贝,被克隆对象的子级dom结构和节点都会被复制

复制的是元素节点的结构,不会复制该节点上的事件

该方法的返回值是复制的元素对象

aa('#copy').onclick = function(){
    //拷贝 wp1
    let ele =aa('.wp1').cloneNode(true);
    //获取body
    let body = document.body;
    //把复制的结果存入body中
    body.appendChild(ele)
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/976537.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Studio 汉化

一、汉化: 查看版本号,查看Android Studio版本,根据版本下载对应的汉化包。例如我的是223。 下载汉化包: 中文语言包下载地址 找到对应的版本 回到Android Studio 1、进入设置 2、从磁盘安装插件 3、选择下载好的包点击OK 4、…

kibana设置ILM

kibana设置ILM 1. 背景 kibana version: v7.9.3 2. 设置ILM 2.1 创建索引生命周期策略 2.1.1 热阶段 首先需要先创建索引生命周期策略,在索引模板中可以引用创建好的索引生命周期策略。 策略名称: 引用该策略是需要用,例如设置为&#…

【LeetCode75】第四十七题 迷宫中离入口最近的出口

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个数组形式的地图,让我们找出离入口最近的出口,出口就是地图的边界。 那么这道题可以使用DFS也可以…

Vue+elementUI 导出word打印

import JSZipUtils from "jszip-utils"; import JSZip from "pizzip"; import Docxtemplater from "docxtemplater"; npm安装以上依赖 首先维护个word模板 导出方法 //导出wordskipOutWord(row) {var printData rowconst data JSON.parse(JS…

作品集(陆续上传中)

智能家居---不断完善中 家居-CSDN直播 家居 语音刷抖音 --- 基于串口和adb 基于守护进程的语音刷抖音-CSDN直播 基于守护进程的语音刷抖音 海天一色项目 --- 船舶靠港零碳排加热器 FTP云盘 --- 多进程和socket FTP云盘-CSDN直播 FTP云盘

JS 删除数组中的第一项和最后一项

JS 删除数组中的第一项和最后一项 需求分析 需求 JS 删除数组中的第一项和最后一项 分析 删除数组第一个元素 array.shift() /* 1. shift() 方法用于把数组的第一个元素从其中删除。 2. 返回值: 被删除的元素(即数组原来的第一个元素的值)。…

Unity——LitJSON的安装

一、LitJSON介绍 特点 LitJSON是一个轻量级的C# JSON库,用于在Unity游戏开发中进行JSON数据的序列化和反序列化操作。它提供了简单而高效的接口,帮助开发者处理JSON数据。 以下是LitJSON库的一些主要特点和功能: 1. 高性能:Lit…

死锁是什么?死锁的字节码指令了解?

用幽默浅显的言语来说死锁 半生:我已经拿到了机考的第一名,就差笔试第一名了 小一:我已经拿到了笔试的第一名,就差机考第一名了 面试官:我很看好你俩,继续"干", 同时拿到2个的第一名才能拿到offe…

华为云云服务器评测|基于云服务器的minio部署手册

华为云云服务器评测|基于云服务器的minio部署手册 【软件安装版本】【集群安装(是)(否)】 版本 创建人 修改人 创建时间 备注 1.0 jz jz 2023.9.2 minio华为云耀服务器 一. 部署规划与架构 1. 规…

降低LLM的幻觉风险:实用策略与技术

一、前言 近年来,大语言模型的快速发展为构建更智能和更人性化的AI系统提供了很多可能性。像GPT-3.5、GPT-4、Bard、Claude 2和LLaMa 2等大语言模型 (LLM) 在个人助理或聊天机器人应用领域展示了强大的潜力,可以生成流畅而令人惊叹的响应来回答用户的问…

新学期第一篇博客

文章目录 一、加入QQ群(一)QQ群号(二)加群要求 二、加入云班课三、使用思维导图(一)下载XMind软件(二)安装XMind软件(三)创建思维导图1、选择模板&#xff08…

【C++】拷贝对象时,编译器的偷偷优化

你知道吗?对于连续的”构造拷贝构造“,编译器其实是会默默做出优化的。👻 如果你不知道这个知识点的话,那下面这道笔试题就要失分了😵。 本篇分享一个关于编译器优化的小知识,看完本篇,你就能…

阿里云服务器退款规则_退款政策全解析

阿里云退款政策全解析,阿里云退款分为五天无理由全额退和非全额退订两种,阿里云百科以云服务器为例,阿里云服务器包年包月支持五天无理由全额退订,可申请无理由全额退款,如果是按量付费的云服务器直接释放资源即可。阿…

C++ Primer Plus 第六章笔记

目录 if 语句 if else语句 if else if else结构 逻辑运算符--&&,||和! cctype字符函数库 条件运算符(三目运算符) switch语句 continue和break语句 基本文件输入/输出 总结:本文主要介绍了分支语句和if判断语句,运算符和简…

vue 浏览器记住密码后,自动填充账号密码错位

亲测有效!!! 遇到的场景: 浏览器记住密码后,登录时自动填充账号密码,由于登录时只需要这两个字段所以没问题,见图一,但注册时,账号密码不在一处,见图二 原本账号应该在…

浅谈JVM内存模型与GC垃圾回收

目录 1. 摘要 2. JVM 简单介绍 3. 线程私有的有哪些? 4. 线程共享的有哪些? 5. JVM 栈中程序是如何操作数据的? 6. 内存泄露是什么意思? 7. 堆内存的分配规则 8. 垃圾回收算法 8.1 垃圾回收机制简单概括 8.2 标记清理算法…

UNIAPP之js/nvue混淆探索

因项目需要对UNIAPP的js混淆做了一些调研 混淆教程: https://uniapp.dcloud.net.cn/tutorial/app-sec-confusion.html 按照教程配置进行打包正式包进行混淆 下载正式包将 .ipa改为.zip 解压获取到HBuilder.app 右键显示包内容 获取到混淆的key 不同时间进行打包混淆同一文…

谷器数据被认证为全国信标委软工分委会全权成员单位

8月23日,全国信息技术标准化技术委员会软件与系统工程分技术委员会(简称:全国信标委软工分委会,SAC/TC28/SC7)批准通过新一批成员单位,北京谷器数据科技有限公司被成功授牌为全权成员单位。 全国信标委软件…

高校消防安全存在的问题与解决方案介绍 安科瑞 许敏

摘要 :本文分析了当前高校消防安全存在的问题,现有消防系统突出问题表现形式,提出高校智慧消防安全预警防控体系构建,并对智慧消防安全预警平台主要功能进行了简介,对高校智慧消防安全预警系统功能设计具有一定的指导意…

0基础学习VR全景平台篇 第96篇:VR电子楼书

大家好,欢迎观看蛙色VR官方系列课程——VR电子楼书! 作为2021年底全新上线的行业解决方案,是专门针对地产、园区数字化营销的一站式VR解决方案,为行业潜在客户提供优质的7x24小时线上看房体验。 本期教程将通过功能介绍后台操作&…