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 相关文章推荐
激活 ActiveX 控件
Oct 09 Javascript
js下用gb2312编码解码实现方法
Dec 31 Javascript
javascript编码的几个方法详细介绍
Jan 06 Javascript
Jquery读取URL参数小例子
Aug 30 Javascript
jquery 字符串切割函数substring的用法说明
Feb 11 Javascript
JavaScript的jQuery库中function的存在和参数问题
Aug 13 Javascript
5种JavaScript脚本加载的方式
Jan 16 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
Sep 19 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
May 01 Javascript
vue实现条件叠加搜索的解决方法
May 28 Javascript
JS实现的雪花飘落特效示例
Dec 03 Javascript
antd 表格列宽自适应方法以及错误处理操作
Oct 27 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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
jquery改变tr背景色的示例代码
2013/12/28 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
微信小程序实现顶部选项卡(swiper)
2020/06/19 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
2019/05/20 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
js实现tab栏切换效果
2020/08/02 Javascript
python实现的udp协议Server和Client代码实例
2014/06/04 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
详解Django 时间与时区设置问题
2019/07/23 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
见习期自我鉴定
2013/11/07 职场文书
运动会稿件300字
2014/02/14 职场文书
三爱活动实施方案
2014/03/19 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
小学教师师德整改措施
2014/09/29 职场文书
2015年食品安全工作总结
2015/05/15 职场文书