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 显示当前日期与时间的代码
Mar 24 Javascript
js函数获取html中className所在的内容并去除标签
Sep 08 Javascript
jQuery中用dom操作替代正则表达式
Dec 29 Javascript
JavaScript检测实例属性, 原型属性
Feb 04 Javascript
js闭包实现按秒计数
Apr 23 Javascript
JavaScript中的条件判断语句使用详解
Jun 03 Javascript
探索Vue.js component内容实现
Nov 03 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 jQuery
jQuery实现简单的手风琴效果
Apr 17 jQuery
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
Dec 11 Javascript
详解如何理解vue的key属性
Apr 14 Javascript
vue项目实现减少app.js和vender.js的体积操作
Nov 12 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按行读取文件时删除换行符的3种方法
2014/05/04 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
JQuery实现的按钮倒计时效果
2015/12/23 Javascript
javascript常用的设计模式
2017/02/09 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
three.js 入门案例详解
2018/01/23 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
2020/02/12 Python
python 如何区分return和yield
2020/09/22 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
python安装sklearn模块的方法详解
2020/11/28 Python
.NET方向面试题
2014/11/20 面试题
电脑教师的教学自我评价
2013/11/26 职场文书
会计辞职信范文
2014/01/15 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
法院授权委托书格式
2014/09/28 职场文书
红歌会主持词
2015/07/02 职场文书
python实现监听键盘
2021/04/26 Python