使用 js 做一个简单学生系统

2023-05-16

HTML

<!DOCTYPE html>
<html>
<head>
	<title>学生系统</title>
	<style type="text/css">
		.nianji{
			width:310px;
			height:1000px;
			border:1px solid black;培训
		}	
		table.hovertable{
			font-size: 15px;
			border-color: #999999;
			border-collapse: collapse;
			padding-left: 20px;
		}
		table.hovertable td{
			width: 132px;
			height: 18px;
			border-width: 1px;
			padding: 10px;
			border-style:solid;
			border-color: #a9c6c9;
			font-weight:bold;
		}
		table.student{
			font-size: 7px;
			border-color: #999999;
			border-collapse: collapse;
			padding-left: 20px;
		}
		table.student td{
			width: 41px;
			height: 18px;
			border-width: 1px;
			padding: 10px;
			border-style:solid;
			border-color: #a9c6c9;
			font-weight:bold;
		}
	</style>
	<script type="text/javascript" src="jquery-3.3.1.js"></script>
	<script type="text/javascript" src="jquery.validate.js"></script>
	<script type="text/javascript" src="xueSheng.js"></script>
</head>
<body>
	<div class="nianji">
		<p style="font-size: 14px;">年级名称 : <input type="text" id="grade" name="gradeName" style="background-color: #F2F2F2;border:0px;height: 20px;width: 230px;"></p>
		<p><button id="addBtn">年级增加</button></p>
		<table class="hovertable">
			<thead>
				<tr>
					<td>年级编号</td>
					<td>年级名称</td>
					<td>年级操作</td>
				</tr>
			</thead>
			<tbody id="gradeTbody">
					
			</tbody>	
		</table>
		<br><br>
		<p style="font-size: 14px;">班级名称 : <input type="text" id="cla" name="className" style="background-color: #F2F2F2;border:0px;height: 20px;width: 230px;"></p>
		<p><button id="claAdd">班级增加</button></p>
		<p style="font-size: 14px;">
			选择年级 : 
			<select id="select">
				
			</select>
		</p>
		<br><br><br><br>
		<table class="hovertable">
			<thead>
				<tr>
					<td>所属年级</td>
					<td>班级名称</td>
					<td>班级操作</td>
				</tr>
			</thead>
			<tbody id="claTbody">
					
			</tbody>	
		</table>
		<br><br>
		<p style="font-size: 14px;">学生名称 : <input type="text" id="stu" name="stuName" style="background-color: #F2F2F2;border:0px;height: 20px;width: 230px;"></p>
		<p><button id="stuAdd">学生增加</button></p>
		<span style="font-size: 14px;">
			选择年级 : 
			<select id="gradeSelect">
				
			</select>
		</span>
		<span style="font-size: 14px;">
			选择班级 : 
			<select id="claSelect">
				
			</select>
		</span>
		<br><br><br><br><br>
		<table class="student">
			<thead>
				<tr>
					<td>所属年级</td>
					<td>所属班级</td>
					<td>学生编号</td>
					<td>学生名称</td>
					<td>学生操作</td>
				</tr>
			</thead>
			<tbody id="stuTbody">
					
			</tbody>	
		</table>
	</div>
</body>
</html>

JS 代码

$(function (){
	var gradeArr=[];
	var classArr=[];
	var stuArr=[];
	//年级增加
	$("#addBtn").click(function (){
		var gradeName=$("input[name='gradeName']").val();
		var grade={};
		grade.name=gradeName;
		if(gradeName==""){
			return alert("请填写年级名称");
		}
		var $tbody=$("#gradeTbody");
		var code=[];
		code.push("<tr>");
			code.push("<td flag='num'>"+(maxNo()+1)+"</td>");
			code.push("<td>"+grade.name+"</td>");
			code.push("<td><a href='#' onclick='deleteGrade(this)'>删除</a></td>");
		code.push("</tr>");
		$tbody.append(code.join());
		var select=[];
		select.push("<option>"+grade.name+"</option>");
		$("#select").append(select.join());
		var gradeSelect=[];
		gradeSelect.push("<option>"+grade.name+"</option>");
		$("#gradeSelect").append(gradeSelect.join());
		gradeArr.push($tbody);
	})

	//年级删除
	function deleteGrade(_this){
		var $this=$(_this);
		var $tr=$this.parents("tr");
		$tr.remove();
		for (var i = 0; i < classArr.length; i++) {
			classArr[i].remove();
		}
		for (var i = 0; i < stuArr.length; i++) {
			stuArr[i].remove();
		}		
	}
	//求最大数
	function maxNo(){
		var max=0;
		var tr=$("table tbody tr");
		if(tr.length==0){
			max=0;
		}else{
			var td=$("table tbody tr td[flag='num']");
			$.each(td,function(index,item){
				var num=parseInt($(item).text());
				if(num>max){
					max=num;
				}
			})
		}
		return max;
	}
	window.deleteGrade=deleteGrade;

	//班级增加
	$("#claAdd").click(function (){
		var claName=$("input[name='className']").val();
		var gradeName = $("#select").val();
		var cla={};
		cla.name=claName;
		cla.gradeName=gradeName;
		if(claName=="" || gradeName==null){
			return alert("班级名称未填写'或'所属年级未选择");
		}
		var $tbody=$("#claTbody");
		var code=[];
		code.push("<tr>");
			code.push("<td>"+cla.gradeName+"</td>");
			code.push("<td>"+cla.name+"</td>");
			code.push("<td><a href='#' onclick='deleteCla(this)'>删除</a></td>");
		code.push("</tr>");
		$tbody.append(code.join());
		var select=[];
		select.push("<option>"+cla.name+"</option>");
		$("#claSelect").append(select.join());
		classArr.push($tbody);
	})

	//班级删除
	function deleteCla(_this){
		//var className = $(_this).prev().text();
		var $this=$(_this);
		var $tr=$this.parents("tr");
		$tr.remove();
		for (var i = 0; i < stuArr.length; i++) {
			stuArr[i].remove();
		}
	}
	window.deleteCla=deleteCla;

	//学生增加
	$("#stuAdd").click(function (){
		var stuName=$("input[name='stuName']").val();
		var gradeName=$("#gradeSelect").val();
		var claName=$("#claSelect").val();
		var stu={};
		stu.gradeName=gradeName;
		stu.claName=claName;
		stu.name=stuName;
		if(stuName=="" || gradeName==null || claName==null){
			return alert("学生名称未填写'或'所属年级和所属班级未选择");
		}
		var $tbody=$("#stuTbody");
		var code=[];
		code.push("<tr>");
			code.push("<td>"+stu.gradeName+"</td>");
			code.push("<td>"+stu.claName+"</td>");
			code.push("<td flag='num'>"+(maxNo()+1)+"</td>");
			code.push("<td>"+stu.name+"</td>");
			code.push("<td><a href='#' onclick='deleteStu(this)'>删除</a></td>");
		code.push("</tr>");
		$tbody.append(code.join());
		stuArr.push($tbody);
	})
	//学生删除
	function deleteStu(_this){
		var $this=$(_this);
		var $tr=$this.parents("tr");
		$tr.remove();		
	}
	window.deleteStu=deleteStu;
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 js 做一个简单学生系统 的相关文章

  • macOS终端命令行配置网络代理

    一 前言 xff1a 在下载一些需要vpn下载公司内网的源码或者认证时 xff0c 必不可少的需要使用代理 xff0c 与普通的网页及应用代理不同 xff0c 在mac的终端中并没有开启默认的代理模式 xff0c 所以需要手动进行设置 xf
  • VUE源码浅读

    首先我们要知道vue代码如何运行的 xff1f 初始化及挂载 61 gt 编译 xff08 parse optimize generate xff09 61 gt render function渲染 xff08 响应式 xff09 61 g
  • 一文解决Vue2过渡Vue3痛点

    项目升级vue3 0总结 醉逍遥neo的博客 CSDN博客 升级项目vue版本
  • 前端vue需求:将当前页面转成图片或者PDF并下载

    一 xff0c 下载依赖并引用 npm install html2canvas jspdf import html2canvas from 34 html2canvas 34 import jsPDF from 34 jspdf 34 二
  • react数据之dispatch,reducer

    1 之前写了一篇fetch的简单用法 xff0c 实际项目中数据比那个要复杂 xff0c 下面看一下通过dispatch和reducer来控制数据的更新 xff1b 2 还是以上一个添加分组的组件为例 xff1a 首先我们写一个MoveGr
  • 定时器/计数器介绍

    第一次在学习定时器的时候模模糊糊 xff0c 在做过一些题目之后对定时器有了更新的理解 xff0c 现在整理一下 xff0c 做笔记使用 目录 一 基础知识 定时器的作用 xff1a 定时器的实质 xff1a 定时器的工作原理 xff1a
  • echarts图表大小自适应

    1 还是我上一篇echarts简单使用的例子 xff1a 如果是随windows的width和height自适应的话 xff0c 如下 xff1a var echartsWarp 61 document getElementById 39
  • audio自动播放完美兼容实现方案

    前述 xff1a 最近解决的一个疑难杂症 xff0c 是关于audio自动播放与监听audio加载完成在ios上的兼容性问题 xff0c 其表现为pc xff0c 安卓谷歌浏览器正常 xff0c ios微信 xff0c 谷歌浏览器不正常 需
  • uni-app开发流程一(项目搭建)

    uni app其实是DCloud推出的众多产品之一 xff0c 当然我只研究目前能用到的 DCloud的官网 xff1a https www dcloud io uni app的官网 xff1a https uniapp dcloud io
  • uni-app开发问题总结(小程序与h5)2:兼容性

    前端时间连着开发了俩个项目 xff0c 都是在线教育类的 xff0c uni app架构 xff0c 一套代码兼容移动端h5 43 小程序 碰到一些兼容性问题 xff0c 这里做个记录 xff1a 一 默认使用uni app创建的css 有
  • nginx location proxy_pass的一些坑

    常规博客是 xff0c 先讲自己的经历 xff0c 然后再啰嗦一段话 xff0c 并且再穿插一些自己的感想之类的 不 xff0c 我的博客力求最高效率 需求 xff1a 把 URL 中带 proxy 的统统转发至另外的机子 1 loacat
  • mysql 5.7.28版本 my.cnf 文件的路径

    缘起改mysql的 slow query log 的配置 xff0c 在下 5 7 28版本 etc my cnf 文件据说在5 7 1X版本更改了 xff0c 此后版本把该文件丢在 etc mysql mysql conf d mysql
  • mysql 跨服务器导入

    本机a 服务器b 服务器c xff0c 在本机a 通过终端操作 xff0c 把服务器b上mysql 数据 导入到服务器C mysqldump h192 168 79 130 P3306 ushit pyoueat database youe
  • mysql 查看help手册

    作用 xff1a 解决 记得函数 xff0c 不记得语法的窘境 查看总的目录 mysql gt contents 其下的是各大分类 You asked for help about help category 34 Contents 34
  • vim 查看help命令

    并不需要查找vim 的工作手册 xff0c vim 自带说明书 步骤1 xff1a xff1a help 步骤2 xff1a quickref 步骤3 xff1a 找到 步骤4 xff1a ctrl键 键 同时按下 步骤5 xff1a 会来
  • ubuntu自带的命令查看

    xff1a man ls 比如查ls 命令
  • 【无标题】安装ROS E: 无法定位软件包 ros-melodic-desktop-full

    一 遇到问题 二 可能的原因和解决方法 1 源换一下 xff1a xff08 1 xff09 我是看这位大佬的 5条消息 记录 解决Ubuntu安装ros报错E Unable to locate package ros kinetic de
  • taskset命令:查看、指定进程运行在哪个cpu上

    reference xff1a https baijiahao baidu com s id 61 1592330790387359245 amp wfr 61 spider amp for 61 pc https www cnblogs
  • 超详细手把手教你四种方案彻底解决MAC npm install -g 报错permission denied

    在日常开发过程中 xff0c 我们使用MAC执行 npm install g 下载安装包的时候 xff0c 经常会遇到如下报错 xff1a permission denied 报错详情 xxx 64 CN C02xxxxx6M npm in
  • Ubuntu16.04 LTS 安装VNC Server开启远程桌面

    转载自http blog csdn net longhr article details 51657610 comments 查了各种博客 xff0c 有推荐XRDP的 xff0c 建议安装VNC的 xff0c 都不好用 xff0c 建议按

随机推荐

  • O2OA平台下载及安装部署

    平台下载及安装部署 O2OA安装部署非常方便 xff0c 只需要简单的三步即可完成安装 平台内部集成了多项管理命令 xff0c 可以进行系统升级 xff0c 管理员密码修改 xff0c 数据导出恢复等管理操作 一 下载安装包并且解压 安装包
  • 访问和操作H2数据库

    访问和操作H2数据库 O2OA平台内嵌了H2数据库 xff0c 管理员可以通过支持JDBC的客户端对H2数据库进行访问和数据操作 O2OA默认内嵌了H2数据库 xff0c H2数据库支持两种访问方式 xff1a 一 以WEB方式访问数据库
  • O2OA人员身份,人员属性

    人员信息创建 从组织管理应用中进入个人管理界面后 xff0c 点击左侧上方的添加按钮 xff0c 如下图所示 xff1a 在右侧显示的界面中填写人员信息 xff1a 人员名称 手机号码 唯一编码 xff08 以上必填 xff0c 其他选填写
  • O2OA的SSO与单点认证

    SSO与单点认证 与其他系统实现单点登入 1 1 URL传递加密参数方式 这种方式是比较通用简单的实现方式 xff0c 应急门户将用户登录信息 xff08 用户ID xff09 以URL参数方式传递给被集成系统 xff0c 被集成系统通过接
  • newman和Jenkins(postname和Jenkins的结合使用)

    Newman介绍 Newman 是 Postman 推出的一个 nodejs 库 xff0c 直接来说就是 Postman 的json文件可以在命令行执行的插件 Newman 可以方便地运行和测试集合 xff0c 并用之构造接口自动化测试和
  • SmartBI入门(一)介绍和安装

    一 SmartBI系统介绍 商业智能 xff08 Business Intelligence xff0c 简称 xff1a BI xff09 xff0c 又称商业智慧或商务智能 xff0c 指用现代数据仓库技术 线上分析处理技术 数据挖掘和
  • SmartBI入门(二)配置SmartBI

    具体可以参考文档 Smartbi Config页面介绍 Smartbi V10帮助中心 SmartBI配置 如果是首次访问 xff0c 需要设置 管理员账号 密码 xff0c 以便下次登录配置界面时验证 xff0c 设置后用用户名密码登录即
  • 求助 关于A-Frame带有动画模型的导入

    哪位大神知道导入带有动画的模型后 如何调用模型自带的动画 gltf格式的
  • SmartBI入门(三)数据源配置

    1 设置数据连接 配置连接 2 选择数据表 创建的数据源 xff0c 点击数据库管理 xff0c 添加实际报表需要的数据表 3 数据库展现
  • 再见2014,你好2015

    过去就是过去了 2014年再见 xff0c 2015年你好 xff01 回首 总结也只是慰藉 1999年12月至今 xff0c 经历了整整十五个曾经 xff0c 这其中的波折 xff0c 怎是我这样的小辈能够理解的 借这个平台也只是为了感谢
  • idea报错 Artifact web:war exploded: Error during artifact deployment. See server log for details.

    因为tomcat把报错信息重定向到日志文件中了 xff0c 所以在控制台找不到报错信息 所以需要看一下tomcat日志文件报错信息 xff0c 一般情况下都有报错 日志的路径默认是在C Users 你的用户名 AppData Local J
  • Unity离线用户手册打开缓慢、卡顿

    Unity中文离线用户手册下载页面 https docs unity3d com cn 2019 4 Manual OfflineDocumentation html 文档包下载地址 xff08 需要FQ xff09 https stora
  • Python MapReduce 案例

    map t py import sys import re p 61 re compile r 39 w 43 39 for line in sys stdin ss 61 line strip split 39 39 for s in s
  • ARM基础学习-快速上下文切换技术

    FCSE的原理 快速上下文切换技术 xff08 FCSE xff09 通过修改系统中不同进程的虚拟地址 xff0c 避免在进行进程间切换时造成虚拟地址到物理地址的重映射 xff0c 从而提高系统性能 xff1b 通常情况下 xff0c 如果
  • linux下使用VNC

    安装 xff1a root 64 localhost vncserver You will require a password to access your desktops Password Verify New 39 localhos
  • svn忽略ignore文件记住方式(转)

    每个项目中的配置文件都有区别 xff0c 在本地开发和线上生产 xff0c 之前一直很懒 xff0c 不想去忽略提交一些配置文件 xff0c 只是在提交的时候排除掉 但是在项目上传部署的时候又必须小心 xff0c 害怕覆盖线上的配置 xff
  • OpenvSwitch完全使用手册

    本文主要参考 Overview of functionality and components 以及 Frequently Asked Questions 以及结合自己的理解 http sdnhub cn index php openv s
  • c++正则表达式regex_match和regex_seach使用

    1 xff1a 区别 regex match用来做全匹配 xff0c 检测字符串是否符合表达式规则 xff0c 如果字符串符合规则 xff0c 返回true xff1b regex seach用来匹配字符串中是否有和规则相匹配的字符串子串
  • ubuntu 14.04 ssh连接失败解决---离线安装openssh_server

    1 在联网机器上下载 deb 包 xff0c 因为我的离线机器为 Ubuntu14 04 64位 所以对应下载 amd64 Trusty 包 xff0c 以下为需要下载的 openssh server 及安装依赖的 deb 包名称 open
  • 使用 js 做一个简单学生系统

    HTML lt DOCTYPE html gt lt html gt lt head gt lt title gt 学生系统 lt title gt lt style type 61 34 text css 34 gt nianji wid