【Web】0基础学Web—节点操作、发表神评妙论、事件添加和移除、事件冒泡和事件捕获

0基础学Web—节点操作、发表神评妙论、事件添加和移除、事件冒泡和事件捕获

  • 节点操作
    • 创建节点
    • 末尾追加子节点
    • 插入节点
    • 将一个节点插入到一个父元素的最前面
    • 删除节点
    • 替换节点
  • 发表神评妙论案例
    • css
    • body
    • js
  • 事件添加和移除
    • 事件监听
  • 事件冒泡和捕获

节点操作

创建节点

<script>let _div = document.createElement('div')
</script>

末尾追加子节点

append(…nodes)

<script>document.body.append(_div)let _div2 = document.createElement('div')_div.append(_div2)_div2.innerText = '张三'
</script>

插入节点

insertBefore(前,后)

<script>let _p = document.createElement('p')_p.innerText = 'Web'_div.insertBefore(_p, _div2)
</script>

将一个节点插入到一个父元素的最前面

<script>let _p2 = document.createElement('p')_p2.innerText = '学习'_div.insertBefore(_p2, _div.firstElementChild)
</script>

删除节点

<script>_p.remove()     //自我删除_div.removeChild(_p)   //父元素删除子元素
</script>

替换节点

replaceChild(替换,被替换)

<script>let _div3 = document.createElement('div')_div3.innerText = '替换'//  _div.replaceChild(_div3,_div2)_div2.replaceWith(_div3)
</script>

发表神评妙论案例

css

<style>
* {padding: 0;margin: 0;box-sizing: border-box;
}
ul {list-style: none;
}
.wrapper {width: 350px;position: relative;
}
textarea {width: 350px;height: 150px;/* 去掉缩放 */resize: none;border-radius: 8px;outline: none;padding: 4px 0 0 4px;
}
.send {width: 80px;height: 30px;background-color: #7a70e2;border: none;color: white;border-radius: 40px;position: absolute;bottom: 10px;right: 10px;
}
.send:disabled {opacity: 0.5;
}
ul li {width: 280px;position: relative;/* word-wrap: break-word; */overflow-wrap: break-word;
}
ul li:hover{background-color: #e9e9e9;
}
ul li button {border: none;display: none;background-color: white;width: 40px;position: absolute;right: 0;
}
ul li:hover button{display: inline-block;
}
ul li button:hover {display: inline-block;background-color: rgb(148, 148, 148);
}
</style>

body

<body><div class="wrapper"><textarea class="comment" placeholder="发表神评妙论"></textarea><button class="send" disabled>发表</button></div><ul class="list"><li>66666666666666666666666666666666666666666666666666666666666666666666<button onclick="del(this)">删除</button></li></ul>
</body>

js

<script>let _comment = document.querySelector('.comment')let _send = document.querySelector('.send')let _list = document.querySelector('.list')//按钮启用禁用_comment.oninput = function () {let info = _comment.valueif (info.length > 0) {_send.disabled = false  //启用} else {_send.disabled = true  //禁用}}_send.onclick = function () {let _li = document.createElement('li')_list.insertBefore(_li, _list.firstElementChild)_li.innerHTML = _comment.value + "<button class='del' οnclick='del(this)'>删除</button>"_comment.value = ''  //发表后清空_send.disabled = true  //禁用}function del(ele) {if (confirm('确认删除吗?')) {ele.parentElement.remove()}}
</script>

事件添加和移除

事件监听

事件监听,可以同时添加多个监听事件
addEventListener(‘事件名’,‘处理函数’,bool)

<style>.wrapper>div {width: 200px;height: 200px;border: 1px solid black;}
</style><body><div class="wrapper"><div class="first"></div><div class="second"></div></div><script>let _first = document.querySelector('.first')let _second = document.querySelector('.second')_first.onclick = function () {console.log(11)}// 后者覆盖前者_first.onclick = function () {_first.style.backgroundColor = 'red'}_second.addEventListener('click', function () {console.log(66)})_second.addEventListener('click', function () {_second.style.backgroundColor = 'red'})</script>
</body>

事件冒泡和捕获

addEventListener(‘事件名’,‘处理函数’,bool=false)
false:事件冒泡
true:事件捕获
事件冒泡,事件由子元素传递到父元素
事件捕获,事件由父元素捕获到子元素
阻止事件冒泡 event.stopPropagation()

<style>.outter {width: 200px;height: 200px;background-color: #cb1919;}.inner {width: 100px;height: 100px;background-color: #222dc5;}
</style><body><div class="outter"><div class="inner"></div></div><a href="http://www.baidu.com">删除</a><script>let _outter = document.querySelector('.outter')let _inner = document.querySelector('.inner')//_inner.addEventListener('click', function (event) {console.log('inner')event.stopPropagation()  //阻止事件冒泡}, false)_outter.addEventListener('click', function () {console.log('outter')}, false)//给 a添加事件let _a = document.querySelector('a')_a.onclick = function (event) {console.log('阻止默认事件')event.preventDefault()  //阻止默认事件// return false  //阻止默认事件}</script>
</body>

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mv指令详解

&#x1f3dd;️专栏&#xff1a;https://blog.csdn.net/2301_81831423/category_12872319.html &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 基本语法 主要功能 常用选项详解 1. …

css中的部分文字特性

文章目录 一、writing-mode二、word-break三、word-spacing;四、white-space五、省略 总结归纳常见文字特性&#xff0c;后续补充 一、writing-mode 默认horizontal-tbwriting-mode: vertical-lr; 从第一排开始竖着排&#xff0c;到底部再换第二排&#xff0c;文字与文字之间从…

【JMM】Java 内存模型

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1. 前言2. JMM 内存模型内容3. JMM 内存模型简单执行示意图 ⚠️ 不要与 JVM 内存分布混为一谈论&#xff0c…

服务器等保测评审计日志功能开启(auditd)和时间校准

操作系统审计日志功能开启auditd CentOS 7 默认已经安装 auditd&#xff0c;如果没有&#xff0c;可以通过以下命令安装&#xff1a; yum install audit systemctl start auditd systemctl enable auditd配置审计规则 配置审计规则。添加所需的审计规则 永久规则文件&#xff1…

Backend - C# EF Core 执行迁移 Migrate

目录 一、创建Postgre数据库 二、安装包 &#xff08;一&#xff09;查看是否存在该安装包 &#xff08;二&#xff09;安装所需包 三、执行迁移命令 1. 作用 2. 操作位置 3. 执行&#xff08;针对visual studio&#xff09; 查看迁移功能的常用命令&#xff1a; 查看…

改进萤火虫算法之一:离散萤火虫算法(Discrete Firefly Algorithm, DFA)

离散萤火虫算法(Discrete Firefly Algorithm, DFA)是萤火虫算法的一种重要变种,专门用于解决离散优化问题。 一、基本概念 离散萤火虫算法将萤火虫算法的基本原理应用于离散空间,通过模拟萤火虫的闪烁行为来寻找全局最优解。在离散空间中,萤火虫的亮度代表解的优劣,较亮的…

Java SpringBoot使用EasyExcel导入导出Excel文件

点击下载《Java SpringBoot使用EasyExcel导入导出Excel文件(源代码)》 在 Java Spring Boot 项目中&#xff0c;导入&#xff08;读取&#xff09;和导出&#xff08;写入&#xff09; Excel 文件是一项常见的需求。EasyExcel 是阿里巴巴开源的一个用于简化 Java 环境下 Excel…

十年后LabVIEW编程知识是否会过时?

在考虑LabVIEW编程知识在未来十年内的有效性时&#xff0c;我们可以从几个角度进行分析&#xff1a; ​ 1. 技术发展与软件更新 随着技术的快速发展&#xff0c;许多编程工具和平台不断更新和改进&#xff0c;LabVIEW也不例外。十年后&#xff0c;可能会有新的编程语言或平台…

【Linux】文件的压缩与解压

目录 gzip和 gunzip bzip2 和 bunzip2(特点和gzip相似) xz和unxz(特点和gzip相似) zip 和 unzip tar gzip和 gunzip 特点&#xff1a;只能对单个的普通文件进行压缩 不能进行归档&#xff0c;压缩或解压后的源文件都不存在 压缩后所生成的压缩格式是.gz格式 压缩&…

touch详讲

&#x1f3dd;️专栏&#xff1a;https://blog.csdn.net/2301_81831423/category_12872319.html &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 基本语法 主要功能 常用选项详解 1. …

【开源免费】基于Vue和SpringBoot的贸易行业crm系统(附论文)

本文项目编号 T 153 &#xff0c;文末自助获取源码 \color{red}{T153&#xff0c;文末自助获取源码} T153&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

仓库叉车高科技安全辅助设备——AI防碰撞系统N2024G-2

在当今这个高效运作、安全第一的物流时代&#xff0c;仓库作为供应链的中心地带&#xff0c;其安全与效率直接关系到企业的命脉。 随着科技的飞速发展&#xff0c;传统叉车作业模式正逐步向智能化、安全化转型&#xff0c;而在这场技术革新中&#xff0c;AI防碰撞系统N2024G-2…

如何打开/处理大型dat文件?二进制格式.dat文件如何打开?Python读取.dat文件

背景&#xff1a; 希望查看C语言输出的二进制DAT文件&#xff0c;写入方式如下&#xff08;如果是视频或游戏&#xff0c;未必能使用这种方式打开&#xff0c;关键是需要知道数据的格式&#xff09; # 写入二进制的C语言fp fopen(str, "wb");for (int i 0; i < …

面向对象分析与设计Python版 活动图与类图

文章目录 一、活动图二、类图 一、活动图 活动图 活动图用于描述业务流程、工作流程或算法中的控制流。活动图强调的是流程中的各个步骤的先后顺序&#xff0c;它可以帮助系统分析师、设计师和程序员更好地理解系统的动态行为。 活动图与用例模型互为补充&#xff0c;主要用于…

51单片机——步进电机模块

直流电机没有正负之分&#xff0c;在两端加上直流电就能工作 P1.0-P1.3都可以控制电机&#xff0c;例如&#xff1a;使用P1.0&#xff0c;则需要把线接在J47的1&#xff08;VCC&#xff09;和2&#xff08;OUT1&#xff09;上 1、直流电机实验 要实现的功能是&#xff1a;直…

2024AAAI SCTNet论文阅读笔记

文章目录 SCTNet: Single-Branch CNN with Transformer Semantic Information for Real-Time Segmentation摘要背景创新点方法Conv-Former Block卷积注意力机制前馈网络FFN 语义信息对齐模块主干特征对齐共享解码头对齐 总体架构backbone解码器头 对齐损失 实验SOTA效果对比Cit…

数字IC设计高频面试题

在数字IC设计领域&#xff0c;面试是评估候选人技术能力和问题解决能力的重要环节。数字IC设计的复杂性和要求在不断提高。面试官通常会提出一系列面试题&#xff0c;以考察应聘者在数字设计、验证、时钟管理、功耗优化等方面的专业知识和实践经验。 这些题目不仅涉及理论知识…

Functions

1.trigonometric function 定义和图像 反三角函数是三角函数的反函数 versin(verse -sin)&#xff1a;1/sinx 性质 三角函数的公式 三角恒等式 周期性公式&#xff1a;直接画图记 公式记忆&#xff1a;先想象一个在第一象限的锐角 1&#xff1a;在坐标轴中旋转360 2.sin&am…

1/7 C++

练习&#xff1a;要求在堆区连续申请5个int的大小空间用于存储5名学生的成绩&#xff0c;分别完成空间的申请、成绩的录入、升序排序、成绩输出函数&#xff0c;并在主程序中完成测试 要求使用new #include <iostream>using namespace std; double *addr_new() {double …