html标签四要素例题,html+css+JavaScript例题

这个例题主要是做一个表格,一个存储学生资料的表格,能够完成以下功能:添加学生

删除学生

修改学生

分页查询学生

html代码:html>

添加学生...

  • 姓名:

    pattern="[\u4E00-\u9FA5]{2,5}$" />*

  • 年龄:

    name="age" />*

  • 性别:男

    checked name="sex" />女

    *

  • 住址:

    name="address" />*

  • 手机号码:

    name="phoneNumber" pattern="^1[34578]\d{9}$"/>*

添加

退出

修改学生资料...

  • 姓名:

    pattern="[\u4E00-\u9FA5]{2,5}$" />*

  • 年龄:

    name="age" />*

  • 性别:男

    checked name="sex" />女

    *

  • 住址:

    name="address" />*

  • 手机号码:

    name="phoneNumber" pattern="^1[34578]\d{9}$" />*

修改

退出

姓名年龄性别住址手机号码操作

[

添加学生] 共计

0行, 分

0页, 当前是第

1页 [

首页] [

上一页] [

下一页] [

尾页]

CSS代码:body{

margin: 0px;

}

#back_div{

position: absolute;

z-index: 997;

width: 100%;

height: 100%;

background-color: rgba(0,0,0,0.3);

display: none;

}

#addOperation,#editOperation{

position: absolute;

z-index: 998;

width: 506px;

height: 333px;

top: 25%;

left: 35%;

background-color: cornflowerblue;

border-radius: 10px;

}

#tableData{

width: 100%;

text-align: center;

}

#tableData thead tr th{

margin: 0px;

font-size:20px ;

box-shadow: 0px 10px 10px darkgray;

background-color: rgba(230,230,230,0.5);

}

#tableBody td{

margin-top: 0px;

margin-bottom: 0px;

box-shadow: 0px 0px 3px darkgray;

background-color: rgba(255,255,255,0.0);

}

#tableBody tr:hover{

height: 65px;

background-color: rgba(230,230,230,0.3);

}

#tableData tr td,th{

padding: 20px;

}

a{

text-decoration: none;

color: #6495ED;

}

#delete{

color: red;

}

a:hover{

text-decoration: underline;

color: chocolate;

}

.label{

color: red;

margin-left:5px;

}

ul{

list-style: none;

}

#main_div button,#editMain_div button{

position: absolute;

text-align: left;

}

#main_div button:hover{

background-color: dimgray;

color: #D2691E;

border: 1px solid dimgray;

}

#editMain_div button:hover{

background-color: #6495ED;

color: white;

border: 1px solid dimgray;

}

ul li{

margin: 20px;

}

#main_div,#editMain_div{

width: 380px;

text-align: right;

}

#main_div h2,#editMain_div h2{

font-weight: 500;

text-align: left;

margin-left: 15px;

}

#add_button,#edit_button{

left: 175px;

}

#close_button,#editClose_button{

left: 305px;

}

JavaScript代码://用于存储学生对象的数组

var students = new Array();

//总共能分多少页数

var pageConut = 0;

//当前页数

var thisPage = 0;

//通过元素ID查找到元素对象,然后返回出去

function $(element_ID) {

return window.document.getElementById(element_ID);

}

//关闭用于覆盖网页的div

function close_div() {

$("back_div").style.display = "none";

}

//打开添加学生资料的div

function open_add() {

$("back_div").style.display = "block";

$("addOperation").style.display = "block";

$("editOperation").style.display = "none";

}

//打开修改学生资料的div

function open_edit() {

$("addOperation").style.display = "none";

$("back_div").style.display = "block";

$("editOperation").style.display = "block";

}

//随便注入一些数据来测试用的

function initData() {

for(var i = 0; i <= 10; i++) {

var stu = new Student("test" + i, 12, "男", "湖南" + i, "15820365112");

students.push(stu);

}

}

//初始化方法,主要用来给各个元素添加事件

function init() {

//初始化时注入一些数据来测试效果

initData();

//在初始化时显示第一页

showStudentAll(1);

//点击这个超链接后就能打开添加学生资料的窗口

$("addHref").onclick = function() {

open_add();

}

//点击这个按钮后就能退出添加学生资料的窗口

$("close_button").onclick = function() {

close_div();

}

//点击这个按钮后就能退出修改学生资料的窗口

$("editClose_button").onclick = function() {

close_div();

}

//点击这个超链接后就能跳转到首页

$("shouye").onclick = function() {

//如果只有一页就不跳到首页,并告诉用户只有一页数据

if(pageConut == 1) {

alert("当前只有一页!");

return;

}

//如果不止一页就可以跳到首页

showStudentAll(1);

}

//点击这个超链接后就能跳转到上一页

$("shangyiye").onclick = function() {

//如果当前是第一页就停留,否则跳转到到上一页

showStudentAll(thisPage == 1 ? 1 : thisPage - 1);

}

//点击这个超链接后就能跳转到下一页

$("xiayiye").onclick = function() {

//如果当前是最后一页就停留,否则跳转到到下一页

showStudentAll(thisPage == pageConut ? pageConut : thisPage + 1);

}

//点击这个超链接后就能跳转到尾页

$("weiye").onclick = function() {

//如果只有一页或者当前就在尾页的话就不跳到尾页,并提示用户

if(pageConut == 1) {

alert("当前只有一页!");

return;

}else if(pageConut==thisPage){

alert("已经是尾页了!");

return;

}

//如果不止一页或不在尾页就可以跳到尾页

showStudentAll(pageConut);

}

}

//以数组下标来删除学生数据

function delStudent(index) {

//询问用户是否确定删除数据,确定才进行删除

if(window.confirm("确定删除此数据吗?")) {

students.splice(index, 1);

}

//删除后刷新当前页面

showStudentAll(thisPage);

}

//通过数组下标来获得需要修改的学生对象,并将此对象的数据显示在div窗口的表单上

function showStudentEditDiv(index) {

open_edit();

//通过数组下标,拿出需要修改的学生数据对象

var stuObj = students[index];

//把从数组里拿出来的对象数据,显示在表单上

$("edit_from").arrayIndex.value = index;//隐藏域是用来记录需要修改的学生对象所在的数组下标的

$("edit_from").sname.value = stuObj.name;

$("edit_from").age.value = stuObj.age;

$("edit_from").address.value = stuObj.address;

$("edit_from").phoneNumber.value = stuObj.phoneNumber;

//先删除性别单选框里的checked属性,让两个单选框都不被选中

$("edit_from").sex[0].removeAttribute("checked");

$("edit_from").sex[1].removeAttribute("checked");

//如果性别为“男”,就给“男”单选框添加checked属性,让这个单选框被选中,否则反之

if(stuObj.sex == "男") {

$("edit_from").sex[0].setAttribute("checked", "true");

} else {

$("edit_from").sex[1].setAttribute("checked", "true");

}

}

//学生数据的封装类

function Student(name, age, sex, address, phoneNumber) {

this.name = name;

this.age = age;

this.sex = sex;

this.address = address;

this.phoneNumber = phoneNumber;

}

//将当前页码的学生数据呈现出来

function showStudentAll(page) {

//存储当前页码

thisPage = page;

//以10行为一页,计算总共分几页              //因为以10行为一页,所以数组长度除以10

pageConut = Math.floor((students.length / 10) + (students.length % 10 == 0 ? 0 : 1));

//这里是要得出余数,因为如果尾页的行数少于10行的话,就得分一页出来,

//如果刚好是10行的话,就不需要分了已经能够整除了

var htmlStr = ""; //用字符串存储组合好的html标签

var rowNum = 0; //此变量作为循环的跳出条件之一

//循环添加学生数据

/*使用当前页数计算出前一页数据所占的行数,

并以此作为变量的初始值,让变量在这个节

点上进行增长,所以进入某页或者在某页添

加一行数据都是在这个节点上进行重新添加*/

for(var i = ((page - 1) * 10); i 

//添加到第十行就要跳出循环

var stuObj = students[i]; //拿取学生对象

//利用数组合成html标签,并将学生对象里的数据添加进去

var trStr = ["

",

"

",

stuObj.name,

"

",

"

",

stuObj.age,

"

",

"

",

stuObj.sex,

"

",

"

",

stuObj.address,

"

",

"

",

stuObj.phoneNumber,

"

",

"

",

//添加事件,并把每行数据的数组下标记录在参数里

"【删除】",

"【修改】",

"

",

"

"

].join("");//将字符串数组合成一个字符串

//alert(htmlStr);

htmlStr += trStr; //将合成后的字符串存储到该变量中

}

//把组合成的标签插入到tableBody里,也就是将数据显示到表格上

$("tableBody").innerHTML = htmlStr;

//显示总行数

$("rowCountLabel").innerText = students.length;

//显示总共分了几页

$("pageCountLabel").innerText = pageConut;

//显示当前在第几页

$("thisPageLable").innerText = thisPage;

}

//添加学生资料,参数为表单对象

function addStudent(fromObj) {

//收集表单数据

var name = fromObj.sname.value;

var age = fromObj.age.value;

var sex = fromObj.sex[0].checked ? "男" : "女";

var address = fromObj.address.value;

var phoneNumber = fromObj.phoneNumber.value;

//在控制台打印日志信息,看看收集表单数据的过程有没有出问题

console.log(name);

console.log(age);

console.log(sex);

console.log(address);

console.log(phoneNumber);

//把收集到的学生数据封装到对象里

var stu = new Student(name, age, sex, address, phoneNumber);

students.push(stu); //然后把对象添加到数组里

//重置表单数据

fromObj.reset();

//关闭添加窗口

close_div();

//显示当前页面的数据,也可以说是刷新

showStudentAll(thisPage);

//不提交表单

return false;

}

//修改学生资料,参数为表单对象

function editStudent(fromObj) {

//收集表单数据

var name = fromObj.sname.value;

var age = fromObj.age.value;

//有checked属性的就会返回true

var sex = fromObj.sex[0].checked ? "男" : "女";

var address = fromObj.address.value;

var phoneNumber = fromObj.phoneNumber.value;

var arrayIndex = fromObj.arrayIndex.value;

//在控制台打印日志信息,看看收集表单数据的过程有没有出问题

console.log(name);

console.log(age);

console.log(sex);

console.log(address);

console.log(phoneNumber);

console.log(arrayIndex);

//通过隐藏域记录的数组下标拿出学生对象

var stuObj = students[arrayIndex];

//将这个对象的数据重新覆盖一遍

stuObj.name = name;

stuObj.age = age;

stuObj.sex = sex;

stuObj.address = address;

stuObj.phoneNumber = phoneNumber;

//重置表单数据

fromObj.reset();

//关闭修改窗口

close_div();

//刷新当前页面

showStudentAll(thisPage);

//不提交表单

return false;

}

运行结果:

cdea8647f08cc6defd00411820622e98.png

b1021986805a74f04c8fa2c2ad38e35e.png

3f54f58780415e49769896381f96ea72.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值