JScript实现表格的简单操作


Posted in Javascript onAugust 15, 2017

本文实例为大家分享了JScript实现表格的简单操作,供大家参考,具体内容如下

实现思路:

1、添加时:获取当前列表的行数,在当前一行添加下一行;
2、用insertCell()方法添加一行,下标从0开始,
3、若要给新一行添加类型、响应事件,就用setAttribute()方法,类似于键值对,并用appendChild()方法将数据保存到新一行
4、删除时:获取需要删除行的当前行数this,然后获取父节点,把整一行删掉remove(),而不是单单删除某一行的单个数据
5、修改时:获取当前修改行的行数索引,点击修改时,把表格状态转换为文本格式,并把“修改”改为“确定”

实现代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
      table{
        border-top: 1px solid #ccc;
        border-left: 1px solid #ccc;
        width: 400px;
      }
      td,th{
        border-right:1px solid #ccc ;
        border-bottom: 1px solid #ccc;
      }
    </style>
    <script>
      function add(){
        var table = document.getElementById("order");
        var index = table.rows.length;//表格行数
        var row = table.insertRow(index);//插入一个行并返回新一行


        var c0 = row.insertCell(0);
        var b0 = document.createElement("input");
        b0.setAttribute("type","checkbox");
        b0.setAttribute("onclick","seclect("+index+")");
        b0.setAttribute("name","sel");
        c0.appendChild(b0);

        var c1 = row.insertCell(1);//在新一行插入一列,并返回新一列
        c1.innerHTML = prompt("请输入商品名称","");

        var c2 = row.insertCell(2);//在新一行插入一列,并返回新一列
        c2.innerHTML = prompt("输入数量","");

        var c3 = row.insertCell(3);//在新一行插入一列,并返回新一列
        c3.innerHTML = prompt("输入价格","");

        var c4 = row.insertCell(4);
        var b1 = document.createElement("input");
        b1.setAttribute("type","button");
        b1.setAttribute("value","删除");
        b1.setAttribute("onclick","del(this)");

        var b2 = document.createElement("input");//创建按钮
        b2.setAttribute("type","button");
        b2.setAttribute("value","修改");
        b2.setAttribute("style","margin-left: 5px");
        b2.setAttribute("onclick","update("+index+")");

        c4.appendChild(b1);//把按钮添加到操作的单元格中
        c4.appendChild(b2);
      }

      function del(but){
        //var table = document.getElementById("order");
        but.parentNode.parentNode.remove();//根据节点的层级关系删除行
      }

      function update(index){
        var table = document.getElementById("order");
        //获得修改按钮
        var cell=table.rows[index].cells[4];

        cell.lastChild.setAttribute("value","确定");
        //为按钮重新绑定事件
        cell.lastChild.setAttribute("onclick","edit("+index+")");

        //修改数量
        var cellNumer = table.rows[index].cells[2];
        var txt = document.createElement("input"); //创建一个文本框
        txt.setAttribute("value",cellNumer.innerHTML);//设置文本框的值
        txt.setAttribute("size",5);//文本框长度
        cellNumer.innerHTML = "";//把单元格的数据清除
        cellNumer.appendChild(txt); //把文本框加入到单元格
      }

      function edit(index){
        var table = document.getElementById("order");

        var cell = table.rows[index].cells[4];

        cell.lastChild.setAttribute("value","修改");
        cell.lastChild.setAttribute("onclick","update("+index+")");

        //把单元格中的文本框删除
        var cellNumer = table.rows[index].cells[2];
        var num = cellNumer.firstChild.value;//取文本框的值
        cellNumer.removeChild(cellNumer.firstChild);//删除文本框
        cellNumer.innerHTML = num;
      }

      function allSelect(ch){
        var item = document.getElementsByTagName("input"); //取所有的input标签
        for(var i=0;i<item.length;i++){ //循环每一个
          if(item[i].type==ch.type){ //判断每一个标签的类型是否为CheckBox
            item[i].checked = ch.checked; //复选框的选中与全选的复选框选中相同
          }
        }

      }
      function seclect(sh){
        var item = document.getElementsByName("sel"); 
        var all = document.getElementById("all");
        var tag = true;
        for(var i=0;i<item.length;i++){//判断是否全部选中
          if(item[i].checked == false){
            tag = false;
            break;
          }
        }
        all.checked = tag;
      }
    </script>
  </head>
  <body>
    <center>
      <table id="order" >
        <tr>
          <th>
            <input type="checkbox" onclick="allSelect(this)" id="all"/>全选
          </th>
            <th>商品名称</th>
            <th>数量</th>
            <th>单价</th>
            <th>操作</th>
          </tr>
        <tr>
          <td><input type="checkbox" onclick="seclect(this)" name="sel"/></td>
          <td>娃哈哈</td>
          <td>10</td>
          <td>2</td>
          <td><input value="删除" type="button" onclick="del(this)"style="margin-right:5px ;"/><input value="修改" type="button" onclick="update(1)"/></td>
        </tr>

      </table>
      <button onclick="add()">添加商品</button>
    </center>
  </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Js中sort()方法的用法
Nov 04 Javascript
Extjs学习过程中新手容易碰到的低级错误积累
Feb 11 Javascript
js 获取input点选按钮的值的方法
Apr 14 Javascript
jQuery队列操作方法实例
Jun 11 Javascript
纯jquery实现模仿淘宝购物车结算
Aug 20 Javascript
js仿百度登录页实现拖动窗口效果
Mar 11 Javascript
Javascript生成带参数的二维码示例
Oct 10 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
Nov 29 Javascript
简单理解js的冒泡排序
Dec 19 Javascript
vue-cli创建的项目,配置多页面的实现方法
Mar 15 Javascript
JS module的导出和导入的实现代码
Feb 25 Javascript
vue使用video插件vue-video-player详解
Oct 23 Javascript
AngularJS日程表案例详解
Aug 15 #Javascript
jQuery实现菜单栏导航效果
Aug 15 #jQuery
js实现网页的两个input标签内的数值加减(示例代码)
Aug 15 #Javascript
JScript实现地址选择功能
Aug 15 #Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 #jQuery
关于vue.js发布后路径引用的问题解决
Aug 15 #Javascript
JavaScript中使用Async实现异步控制
Aug 15 #Javascript
You might like
PHP学习笔记之三 数据库基本操作
2011/01/17 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
php获取图片信息的方法详解
2015/12/10 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
2017/06/05 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
php中的依赖注入实例详解
2019/08/14 PHP
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
老师给学生的表扬信
2014/01/17 职场文书
物流创业计划书
2014/02/01 职场文书
房地产公司见习自我鉴定
2014/04/28 职场文书
公司领导班子对照检查存在问题整改措施
2014/10/02 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书
初中地理教学反思
2016/02/19 职场文书
2019学子的答谢词范本!
2019/07/05 职场文书
python数据处理之Pandas类型转换
2022/04/28 Python
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技