前端小demo——表格增删

模拟录入成绩系统,对数据在前端页面进行增删。

点击生成表格按钮,自动生成一个表格,这里的数据是写死的。可以进行删除。

点击添加按钮,自动生成一行,在输入框内输入相关内容,点击确定,生成新数据。

<!DOCTYPE html>
<html>

<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    table {
      text-align: center;
    }

    thead td {
      width: 100px;
      height: 30px;
      background: #ccc;
    }

    tbody td {
      height: 25px;
    }

    input {
      width: 70px;
      height: 20px;
    }

    .button {
      width: 70px;
      height: 30px;
      margin: 10px 0 10px 0;
    }
  </style>
</head>

<body>
  <input type="button" value="生成表格" id="btn" class="button" />
  <br/>

  <div id="dv">
    <table border="1" cellpadding="0" cellspacing="0">
      <thead>
        <tr>
          <td>姓名</td>
          <td>科目</td>
          <td>分数</td>
          <td>操作</td>
        </tr>
      </thead>
      <tbody id="tbd">

      </tbody>
    </table>
  </div>

  <input type="button" value="添加" id="btn2" class="button" />

  <!-- <script src="common.js"></script> -->
  <script>
    function zy$(id) {
      return document.getElementById(id)
    };
    var arr = [{
        "name": "张三",
        "subject": "语文",
        "score": "80"
      },
      {
        "name": "李四",
        "subject": "数学",
        "score": "78"
      },
      {
        "name": "王五",
        "subject": "英语",
        "score": "90"
      }
    ];
    //注册点击事件,生成现有表格
    zy$("btn").onclick = function () {
      //tbody中的内容只出现一次
      if (!zy$("tbd").firstElementChild) {
        //遍历arr
        for (var i = 0; i < arr.length; i++) {
          //创建一行
          var trObj = document.createElement("tr");
          //追加到tbody中
          zy$("tbd").appendChild(trObj);
          //修改ID值
          trObj.id = "cc" + i;
          //创建列
          //第一列
          var td1 = document.createElement("td");
          trObj.appendChild(td1);
          td1.innerHTML = arr[i].name;
          //第二列
          var td2 = document.createElement("td");
          trObj.appendChild(td2);
          td2.innerHTML = arr[i].subject;
          //第三列
          var td3 = document.createElement("td");
          trObj.appendChild(td3);
          td3.innerHTML = arr[i].score;
          //第四列
          var td4 = document.createElement("td");
          trObj.appendChild(td4);
          //创建a标签
          var aObj = document.createElement("a");
          td4.appendChild(aObj);
          //a的跳转地址
          aObj.href = "javascript:void(0)";
          aObj.innerText = "删除";
          //点击删除
          aObj.onclick = function () {
            this.parentNode.parentNode.parentNode.
            removeChild(this.parentNode.parentNode);
          };
        }
      }
    }

    //注册点击事件,添加
    zy$("btn2").onclick = function () {
      //创建一行
      var trObj = document.createElement("tr");
      //追加到tbody中
      zy$("tbd").appendChild(trObj);
      //创建列
      //一列
      var td1 = document.createElement("td");
      trObj.appendChild(td1);
      var input1 = document.createElement("input");
      td1.appendChild(input1);
      //二列
      var td2 = document.createElement("td");
      trObj.appendChild(td2);
      var input2 = document.createElement("input");
      td2.appendChild(input2);
      //三列
      var td3 = document.createElement("td");
      trObj.appendChild(td3);
      var input3 = document.createElement("input");
      td3.appendChild(input3);
      //四列
      var td4 = document.createElement("td");
      trObj.appendChild(td4);
      //a标签确定标签
      var aObj = document.createElement("a");
      td4.appendChild(aObj);
      aObj.href = "javascript:void(0)";
      aObj.innerText = "确定";
      //注册点击事件,确定
      aObj.onclick = function () {
        td1.innerText = input1.value;
        td2.innerText = input2.value;
        td3.innerText = input3.value;
        //点击确定之后,第四列会发生变化
        //删除现有第四列
        this.parentNode.parentNode.removeChild(this.parentNode);
        //创建新的第四列
        var td4 = document.createElement("td");
        trObj.appendChild(td4);
        //第四列中的内容
        var aObj = document.createElement("a");
        td4.appendChild(aObj);
        aObj.innerText = "删除";
        aObj.href = "javascript:void(0)";
        //删除
        aObj.onclick = function () {
          this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
        };
      };
      //a标签,取消标签
      var aObj2 = document.createElement("a");
      td4.appendChild(aObj2);
      aObj2.href = "javascript:void(0)";
      aObj2.innerText = "取消";
      //注册点击事件,取消
      aObj2.onclick = function () {
        this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
      };

    };
  </script>
</body>

</html>

原文地址:https://www.cnblogs.com/yuebanzhou/p/9133293.html

时间: 2024-08-28 04:00:01

前端小demo——表格增删的相关文章

前端小demo——遮罩层逐渐变透明

点击按钮触发事件使遮罩层逐渐变透明 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> img { width: 430px; height: 280px; } div { width: 1600px; height: 300px; background

前端小demo——全选和全不选

模拟购物车,实现全选或者全不选,或者其中任意一件单品单选的效果. 点击顶部复选框实现全选 列表中任意一项未选中,顶部复选框就是未选中的状态 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> * { padding: 0; margin: 0; } #div {

一周一个小demo — 前端后台的交互实例

这一周呢,本K在大神的指导下,完成了一个利用ajax与php文件上传处理相结合的一个留言板功能的小实例,下面就让本K来带大家瞅瞅如何实现这一种功能. 一.界面概览 首先我们来看一下这个小demo的具体效果. 这个demo中,主要包括了三个步骤,也分别对应了三个功能,分别是注册,登录与留言板功能.而这三个功能基本都借助了前后台交互的几种技术,下面,本K就给大家分别展示一下这三个功能实现的代码. 二.功能实现 1.注册功能与登录功能 1.1 代码展示 1.1.1 注册功能 (1)前段部分 <!DOC

新手 gulp+ seajs 小demo

首先,不说废话,它的介绍和作者就不在多说了,网上一百度一大堆: 我在这里只是来写写我这2天抽空对seajs的了解并爬过的坑,和实现的一个小demo(纯属为了实现,高手请绕道); 一.环境工具及安装 1.首先,务必先说明,本demo是基于nodeJs环境下开发的,因此要安装nodeJs(地址:https://nodejs.org/en/): 2.接下来安装gulp: 在第一步成功的情况下,安装gulp构建工具,并且将其依赖到项目进来:同时需要安装browser-sync,gulp-seajs-co

2、链接数据库+mongodb基础命令行+小demo

链接数据库并且打印出数据的流程:1.在CMD里面输入 mongod 2.在CMD里面输入 mongo 3.在输入mongodb命令行里面进行操作,首先输入 show dbs 来查看是否能够链接得上库4.定义db var db = connect('log'); //链接数据库 链接的是哪一个数据库?5.插入数据:db.login.insert(jsonData); //插入数据 5.命令行一:基础命令行(1).查看存在数据库命令 : show dbs (2).查看数据库版本命令 : db.ver

SpringBoot-Vue实现增删改查及分页小DEMO

前言 主要通过后端 Spring Boot 技术和前端 Vue 技术来简单开发一个demo,实现增删改查.分页功能以及了解Springboot搭配vue完成前后端分离项目的开发流程. 开发栈 前端 开发工具:WebStorm 开发框架:vue + axios 包管理工具: npm 打包工具:webpack 后端 开发工具:IDEA 开发框架:Springboot + mybatis 打包工具:maven 数据库: MySQL PS:假设以上的的工具你都安装好啦,写CRUD小DEMO时进坑了,这篇

Nancy之基于Self Hosting的补充小Demo

前面把Hosting Nancy with ASP.NET.Self Hosting Nancy和Hosting Nancy with OWIN 以demo的形式简单描述了一下. 这篇是为Self Hosting Nancy.和Owin 下面的Self Hosting作个补充. 首先是Self Hosting Nancy的补充: 这里主要是介绍一下Topshelf 官网:http://topshelf-project.com/ GitHub地址:https://github.com/Topshe

用backbone实现的一个MVC的小demo

一.Apache配置 本实例需要使用php支持.要现在Apache中配置虚拟目录,在Apache下的httpd-vhosts.conf文件中添加如下代码 <VirtualHost *:80> DocumentRoot "D:/htdocs/backbone_demo" ServerName www.backbonedemo.cn </VirtualHost> 在windows的hosts文件中添加配置,hosts文件的位置在c:\windows\system32

结对项目小DEMO

这次小DEMO主要实现下面两个功能: 实现两个页面的相互跳转 通过多线程实现网络发送请求 本人负责界面与说明文档编写,搭档负责java代码的具体实现. xml代码: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_