JS,DOM试题2,在实践中应用,非常详细!!

news2025/1/8 7:23:45

列表收缩

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			ul,li{
				list-style: none;
				padding: 0;
				margin: 0;
			}
			ul{
				display: none;
			}
			h3{
				margin: 0;
				background: cornflowerblue;
			}
			div{
				text-indent: 20px;
				width: 200px;
			}
			.active{
				background: coral;
			}
		</style>
	</head>
	<body>
		<div>
			<h3>同学</h3>
			<ul>
				<li>同学1</li>
				<li>同学2</li>
				<li>同学3</li>
			</ul>
		</div>	
		<div>
			<h3>朋友</h3>
			<ul>
				<li>朋友1</li>
				<li>朋友2</li>
				<li>朋友3</li>
				<li>朋友4</li>
			</ul>
		</div>	
		<div>
			<h3>家人</h3>
			<ul>
				<li>父亲</li>
				<li>母亲</li>				
			</ul>
		</div>	
		<script>
			var h = document.getElementsByTagName('h3');
			var ul = document.getElementsByTagName('ul');

			for(var i=0;i<h.length;i++){
				h[i].onclick = function(){
					var current = this.nextElementSibling;
					//console.log(current);
					if(current.style.display == 'block'){
						current.style.display = 'none';
						this.className = '';
					}else{
						for(var j=0;j<ul.length;j++){
						ul[j].style.display = 'none'
                		ul[j].previousElementSibling.className = ''
						}
						current.style.display = 'block';
						this.className = 'active';
					}		
				}
			}
		</script>
	</body>
</html>

因为是点击h3 显示出ul中的所有li的内容,并且颜色会发生改变,且点击一个后,再点击另外一个,除此之外的都要收缩回去

所以

  1. 获取h3 和 ul

  2. 获取h.length个h的点击事件

  3. nextElementSibling属性只返回元素节点之后的兄弟元素节点(不包括文本节点、注释节点)

    所以,current是为了获取 h 对应的 ul 元素

  4. 进入 if else

  5. if:如果我点击同学,则同学展开,如果我再点击同学,则同学收缩

  6. else 如果我点击同学,则同学展开,如果我点击除同学之外的 则 遍历 ul,全部收缩,for循环结束,把当前点击的进行展开和变色

代办事项

<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>JS待办事项列表添加删除代码 - 站长素材</title>
<style>
	* {
  box-sizing: border-box;
  font-family: sans-serif, Courier, monospace;
}

body {
  margin: 0;
  display: flex;
  justify-content: center;
  background: #303134;
  color: white;
  height: 100vh;
  width: 100%;
}
body h2 {
  font-size: 80px;
  color: #4285f4;
  margin: 60px;
  text-transform: uppercase;
}

.all {
  width: 100%;
  position: relative;
  display: flex;
  justify-content: center;
  -ms-flex-direction: column;
  flex-direction: column;
  padding: 20px;
  /* now to the list shit */
}
.all .inout {
  display: flex;
  justify-content: center;
  flex-direction: row;
}
.all .inout #text,
.all .inout button {
  padding: 5px 10px;
  height: 50px;
  font-size: 18px;
  border: none;
}
.all .inout #text {
  width: 80%;
  border-radius: 5px 0 0 5px;
}
.all .inout button {
  width: 20%;
  background: #1a73e8;
  border-radius: 0 5px 5px 0;
  color: white;
  cursor: pointer;
}
.all .list ul {
  list-style: none;
  padding: 0;
}
.all .list ul li {
  width: 100%;
  background: white;
  color: #303134;
  margin: 0;
  padding: 20px;
  border: 1px solid #303134;
  border-radius: 5px;
}
.all .list ul li span {
  padding: 10px;
  margin: 5px;
  background: #eee;
  border-radius: 3px;
  color: white;
  display: inline-block;
  float: right;
  margin-top: -10px;
  cursor: pointer;
}
.all .list ul li span.first {
  background: #ffac13;
}
.all .list ul li span.second {
  background: #b11717;
}

</style>
</head>
<body>

<header>
	<h2 class="head">待办事项工具</h2>

	<div class="all">
		<div class="inout">
			<input type="text" name="item" id="text" placeholder="添加您的事项">
			<button>添加</button>
		</div>

		<div class="list">
			<ul>
			</ul>
		</div>
	</div>
</header>
	<script>
		var btn = document.querySelector('button');
		var ul = document.querySelector('ul');
		var text = document.querySelector('input');
		btn.onclick = function(){
			if(text.value == ''){
				alert('请输入待办事项');
			}else{
				var li = document.createElement('li');
				li.innerHTML = text.value + "<span class='fin'> 完成</span>" + "<span class='del'>删除</span>";
				
        ul.insertBefore(li,ul.children[k++]);
        var fin = document.querySelector('.fin');
				var del = document.querySelector('.del');
				del.className = 'second';
				fin.className = 'first';
			
				fin.onclick = function(){
						this.parentNode.style.backgroundColor = 'green';
					}
				del.onclick = function(){
						ul.removeChild(this.parentNode);
				}
			}
		}
	</script>
</body>
</html>

在这里插入图片描述

输入之后,点击添加,下面会显示代办事项,点击完成,显示绿色,点击删除,则删除事项

  1. 获取 "添加"的点击事项,获取 input ,因为在ul中显示事项,所以也要获取 ul

  2. 获取btn的点击事件,因为要在ul里填li,所以要创造一个元素document.createElement(‘li’)

  3. 因为要出现删除和完成,则要用 innerHTML,text.value是为了可以让事项从上往下添加,

    li.innerHTML = text.value + "<span class='fin'> 完成</span>" + "<span class='del'>删除</span>";

  4. 获取 “完成” 和 “删除” 的元素

  5. 设置 完成和删除的点击事件,如果完成则变为绿色

    this.parentNode.style.backgroundColor = 'green'; parentNode指li的父节点 ul整条变色

    ul.removeChild(this.parentNode); 表示删除节点,移出这个ul的父节点即div,移出掉

该套例题在我的资源里,请自行下载

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

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

相关文章

基于FFmpeg的Java视频Mp4转GIF初探

背景 在一些业务场景中&#xff0c;会有如下的一些要求&#xff1a;比如有用户需要将Mp4视频转为Gif动图。当然有一些小伙伴说可以使用系统截图&#xff0c;然后使用之前提到过的技术&#xff1a;GIF图像动态生成-JAVA后台生成。需要处理的素材比较少&#xff0c;就一两个视频&…

最全Python操作excel代码,让你每天早下班两小时

在数字化时代&#xff0c;很多人工作中经常和excel打交道。本文介绍Python操作excel的脚本&#xff0c;让你工作效率更高。    文章目录一、安装openpyxl模块二、加载库三、创建文件和工作表四、在工作表指定单元格写数据五、设置单元格的颜色字体六、在excel中写入表格一、安…

【数据结构初阶】C语言从0到1带你了解直接插入排序

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【数据结构初阶】 ✒️✒️本篇内容&#xff1a;深入剖析直接插入排序 &#x1f6a2;&#x1f6a2;作者简介&#xff1a;计算机海洋的新进船长一枚&#xf…

等保整改之开启Nacos认证-漏扫发现我们使用Nacos时存在未授权访问的漏洞

背景 还是之前的一个小项目&#xff0c;部署在专网中&#xff0c;等保在做了一次漏扫后&#xff0c;说是有个高危漏洞要求整改。打开漏洞扫描报告后&#xff0c;总体网络风险级别为&#xff1a;比较危险&#xff1a; nacos未授权访问漏洞 &#xff0c;漏洞详细信息如下&#x…

Linux基本用户操作

1.查看用户名 指令&#xff1a;whoami 在Linux下查看本用户下的用户名&#xff0c;可以在普通用户和root超级用户下操作&#xff0c;如下&#xff1a; 其实&#xff0c;查看用户名也可以不用指令就能查看&#xff1a; 箭头所指的就是用户名&#xff0c;root用户名就是root。 2.…

第2章 持久化初始数据到指定表

004 AuthorityScopeEnum、Role、Topic、TaskInfoDto、TasksQz AuthorityScopeEnum&#xff1a;该枚举定义了6种当前程序的访问权限&#xff0c;前程序通过该枚举实例选定其中(NONE(-1&#xff1a;无任何权限)/Custom(1&#xff1a;自定义权限)/MyDepart(2&#xff1a;本部门权…

Typescript:(一)基本使用

TypeScript 定义&#xff1a;Typescript是拥有类型的JavaScript超集 它可以编译成普通&#xff0c;干净&#xff0c;完整的JavaScript代码 我们可以将TypeScript理解成加强版的JavaScript。 JavaScript所拥有的特性&#xff0c;TypeScript全部都是支持的&#xff0c;并且它紧…

Linux系统挂载命令mount(U盘、移动硬盘、光盘)

Linux系统不像windows系统可以自动识别加载新设备&#xff0c;Linux系统需要手动识别&#xff0c;手动加载。Linux中一切皆文件。文件通过一个很大的文件树来组织&#xff0c;文件树的根目录是&#xff1a;/&#xff0c;从根目开始录逐级展开。这些文件通过若干设备铺展开。 命…

BCG 对话框表格控件CBCGPGridCtrl显示子

1、1、MFC窗口中拖放Picture Control 2、 void CSimpleGridSampleDlg::_FillGrid() { CWaitCursor wait; // Create grid tree: CRect rectClient; GetClientRect(rectClient); m_wndGrid.Create(WS_CHILD | WS_VISIBLE, rectClient, this, ID_GRID); m_wndGri…

SAR回波的多普勒特性

专栏目录链接: SAR成像专栏目录 今天我们来看看SAR回波的多普勒特性。 首先推导下正侧视下SAR回波的多普勒频率公式,前提条件: 正侧视不考虑平台运动的不稳定性忽略地球曲率忽略地球自转的影响 根据多普勒效应原理可得SAR回波的多普勒频率(可以回顾下:《雷达导论PART IV.…

C++之二叉搜索树详解

文章目录前言一、二叉搜索树的概念二、二叉搜索树的操作1.节点类2.二叉搜索树类内部定义3.遍历操作4.构造函数5.拷贝构造函数6.赋值运算符重载7.析构函数8.插入函数非递归实现递归实现9.删除函数非递归实现递归实现10.查找函数非递归实现递归实现三、二叉搜索树的应用K模型KV模…

索引和事务

文章目录 1.索引的含义以及应用 2.索引的查看、创建 3.带主键的索引底层结构 4.事务的含义 5.事务的特性 6.JDBC 一.索引的含义及应用 1.索引我们可以认为是文章的目录&#xff0c;有了它&#xff0c;我们可以更加快速的 查看到我们想要查找的内容。 2.并不是说我们加了索引&…

一周侃 | 周末随笔及推荐

前言 每周一次的闲聊胡侃又来啦&#xff01;这一周世界发生了许多大事&#xff0c;从举世瞩目的中美元首会晤到新的防疫政策二十条出来之后各地防疫政策的转变&#xff0c;再到俄乌冲突持续进行&#xff0c;联大通过俄罗斯赔偿计划……百年未有之大变局正加速演进&#xff0c;…

【k8s】8、service详解

文章目录一、Service详解1、Service介绍1.1 userspace模式1.2 iptables 模式1.3 ipvs模式2、Service类型3、Service使用3.1 实现环境准备3.2 Cluster类型的Service3.2.1 cluster类型的生成ip3.2.2 cluster类型不生成ip3.3 NodePort类型的service3.4 LoadBalancer类型的Service3…

【MySQL】MySQL体系结构与内部组件工作原理解析(原理篇)(MySQL专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码&#xff0c;就职于大型金融公司后端高级工程师&#xff0c;擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…

GEE两行代码下载任意范围影像python API

GEE三行代码下载任意范围影像 前不久&#xff0c;吴秋生博士更新了geemap&#xff0c;现在能更方便地下载影像了最新的下载再也不受有限的Google Drive、图像过大会自动分割、缓慢的下载速度影响了。 有兴趣的同学可以see this: https://geemap.org/notebooks/118_download_i…

蓝牙传输 LE Audio技术

蓝牙 蓝牙(Bluetooth)技术&#xff0c;实际上是一种短距离无线电技术&#xff0c;利用"蓝牙"技术&#xff0c;能够有效地简化掌上电脑、笔记本电脑和移动电话手机等移动通信终端设备之间的通信&#xff0c;也能够成功地简化以上这些设备与因特网Internet之间的通信&…

react(受控组件、生命周期、使用脚手架)

目录 使用脚手架 其他&#xff1a; 学习js: mdn 文档 MDN Web Docs 在react官方文档的 CDN 链接里下载最新的react版本react官网&#xff1a;React 官方中文文档 – 用于构建用户界面的 JavaScript 库 BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务 1. 受控组件…

ES6 入门教程 15 Proxy 15.3 Proxy.revocable() 15.4 this 问题 15.5 实例:Web 服务的客户端

ES6 入门教程 ECMAScript 6 入门 作者&#xff1a;阮一峰 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录ES6 入门教程15 Proxy15.3 Proxy.revocable()15.4 this 问题15.5 实例&#xff1a;Web 服务的客户端15 Proxy 15.3 Proxy.revocable() …

BLDC的列子2

1.三相采样电流的采集以u相为举例。 采集下桥臂I-V的电压。在除以采样电阻。就可以得到采样电流。但由于I-V的电压比较小。 需要一个放大电路把电压放大ADC才采集的到。 放大后的电压是AMP_IU.用ADC去采集这个电压。从而算出I_V的电压。 在电机停止的时候也会有微小的电压。…