JavaScript动态增删改表格数据

  1 <!DOCTYPE html>
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5     <title></title>
  6     <style type="text/css">
  7         div { border: 1px solid #0094ff; text-align: center; width: 420px; margin: 5px auto; }
  8
  9         #divNumEdit { float: right; width: 90px; border: 0px; margin: 0; }
 10
 11         table { border-collapse: collapse; border: 1px solid #0094ff; width: 400px; margin: 5px auto; text-align: center; }
 12
 13         td { border: 1px solid #0094ff; }
 14         input.count {width:32px; text-align:center;}
 15         #trTitle { font-weight: bolder; background-color: #4cff00; }
 16     </style>
 17 </head>
 18 <body>
 19     <div>
 20         <input type="button" value="新增菜单" id="btnAddOption" onclick="addMenuOption()" />
 21         <label>菜单:</label>
 22         <select id="selList">
 23             <option>兰州拉面</option>
 24             <option>肉夹馍</option>
 25             <option>手撕包菜</option>
 26             <option>西兰花炒蛋</option>
 27         </select>
 28         <label>数量</label>
 29         <div id="divNumEdit">
 30             <input type="button" value="+" onclick="EditNum(this);" />
 31             <label id="labelNum">0</label>
 32             <input type="button" value="-" onclick="EditNum(this)" />
 33         </div>
 34     </div>
 35     <div>
 36         <input type="button" value="新增订单" id="btnAddTr" onclick="addRowData()" />
 37     </div>
 38     <table id="tbList">
 39         <tr id="trTitle">
 40             <td>序号</td>
 41             <td>菜名</td>
 42             <td>数量</td>
 43             <td>编辑</td>
 44         </tr>
 45     </table>
 46     <div>
 47         <input type="checkbox" id="chkAll" onclick="checkAll()" /><label for="chkAll">全选</label>
 48         <a href="javascript:void(0)" onclick="delCheckedRow()">删除选中</a>
 49     </div>
 50     <script>
 51         var index = 1;
 52         var table = document.getElementById("tbList");
 53         var Name;
 54         var Count;
 55         var IsEditable = true;// 标示编辑操作是否可用.
 56         function addMenuOption() {
 57             var name = prompt("请输入菜单名...");
 58             if (name == null || name == "") return;//验证输入是否为空.
 59             var op = document.createElement("option");
 60             op.innerHTML = name;
 61             document.getElementById("selList").appendChild(op);
 62         }//增加菜单
 63         function EditNum(obj) {
 64             if (obj.value == "+") {
 65                 obj.nextElementSibling.innerHTML++;
 66             } else {
 67                 if (obj.previousElementSibling.innerHTML > 0)
 68                     obj.previousElementSibling.innerHTML--;
 69             }
 70         }//编辑数量
 71         function addRowData() {
 72             if (!IsEditable) return;
 73             if (document.getElementById("labelNum").innerHTML == 0) { return; }//如果数量为0,不增加行数据.
 74             var tr = document.createElement("tr");
 75             var tdId = document.createElement("td");
 76             var tdName = document.createElement("td");
 77             var tdCount = document.createElement("td");
 78             var tdAction = document.createElement("td");
 79             tdId.innerHTML = "<input type=‘checkbox‘ />" + index;
 80             tdName.innerHTML = document.getElementById("selList").value;
 81             tdCount.innerHTML = document.getElementById("labelNum").innerHTML;
 82             tdAction.innerHTML = ‘<a href="javascript:;" onclick="editRowData(this)">编辑</a>&nbsp<a href="javascript:;" onclick="delRowData(this)">删除</a>‘;
 83             tr.appendChild(tdId);
 84             tr.appendChild(tdName);
 85             tr.appendChild(tdCount);
 86             tr.appendChild(tdAction);
 87             table.appendChild(tr);
 88             index++;//增加序号.
 89         }//添加行数据.
 90         function delRowData(obj) {
 91             table.removeChild(obj.parentNode.parentNode);
 92         }//删除行数据.
 93         function editRowData(obj) {
 94             if (!IsEditable) return;
 95             var tr = obj.parentNode.parentNode;
 96             Name = tr.children[1].innerHTML;
 97             Count = tr.children[2].innerHTML;
 98             tr.children[1].innerHTML = "<select>" + document.getElementById("selList").innerHTML + "</select>";
 99             tr.children[1].children[0].value = Name;
100             tr.children[2].innerHTML = ‘<input type="text" class="count" value="‘ + Count + ‘"/>‘;
101             tr.children[3].innerHTML = ‘<a href="javascript:;" onclick="saveEdit(this)">保存</a>&nbsp<a href="javascript:;" onclick="cancelEdit(this)">取消</a>‘;
102             IsEditable = false;
103         }//编辑行数据
104         function cancelEdit(obj) {
105             var tr = obj.parentNode.parentNode;
106             tr.children[1].innerHTML = Name;
107             tr.children[2].innerHTML = Count;
108             tr.children[3].innerHTML = ‘<a href="javascript:;" onclick="editRowData(this)">编辑</a>&nbsp<a href="javascript:;" onclick="delRowData(this)">删除</a>‘;
109             IsEditable = true;
110         }//取消编辑
111         function saveEdit(obj) {
112             var tr = obj.parentNode.parentNode;
113             tr.children[1].innerHTML = tr.children[1].children[0].value;
114             tr.children[2].innerHTML = tr.children[2].children[0].value;
115             tr.children[3].innerHTML = ‘<a href="javascript:;" onclick="editRowData(this)">编辑</a>&nbsp<a href="javascript:;" onclick="delRowData(this)">删除</a>‘;
116             IsEditable = true;
117         }//保存编辑后的结果
118         function checkAll() {
119             var ck = document.getElementById("chkAll").checked;
120             var tr;
121             for (var i = 1; i < table.children.length; i++) {
122                 tr = table.children[i];
123                 tr.children[0].children[0].checked = ck;
124             }
125         }//全选
126         function delCheckedRow() {
127             var tr;
128             var ck;
129             for (var i = table.children.length-1; i >=1; i--) {
130                 tr = table.children[i];
131                 ck = tr.children[0].children[0].checked;
132                 if (ck) table.removeChild(tr);
133             }
134         }//删除选中行
135     </script>
136 </body>
137 </html>
时间: 2024-08-07 16:41:09

JavaScript动态增删改表格数据的相关文章

BootStrap table动态增删改表格内数据

1 1:添加一个[操作]列 2 3   4 5 { 6 title: "操作", 7 align: 'center', 8 valign: 'middle', 9 width: 160, // 定义列的宽度,单位为像素px 10 formatter: function (value, row, index) { //传入数据 11 return '<button class="btn btn-primary btn-sm" onclick="del(

javaScript实现增删改查

自己写的一个html+javaScript实现增删改查小实例.下面是js代码?1. [代码][JavaScript]代码   //1.创建受捐单位数组var arrOrgData = [    { "Id": 1, "OrgName": "红十字会" },    { "Id": 2, "OrgName": "壹基金" },    { "Id": 3, "Or

最简单直接碎片操作,动态增删改(2)

接续文章1的主activity,新增两个按钮一个是删除,一个是恢复然后添加事件,代码如下: @SuppressLint("Recycle") @Override public void onClick(View v) { // TODO Auto-generated method stub FragmentTransaction trx = getSupportFragmentManager() .beginTransaction(); switch (v.getId()) { cas

动态加载表格数据(自定义)

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> tr>td{ width: 100px; border: 1px solid red; } </style></head><body><ul id="boxU

jquery表格动态增删改及取数据绑定数据完整方案

一 前言 上一篇Jquery遮罩插件,想罩哪就罩哪! 结尾的预告终于来了. 近期参与了一个针对内部员工个人信息收集的系统,其中有一个需求是在填写各个相关信息时,需要能动态的增加行当时公司有自己的解决方案 那就是用GridView 那个庞大的服务器控件,我一真就不怎么喜欢用服务器控件,于是极力说服PM用js来处理,并成功争取到了,先说下如果用GridView来处理的缺点, 1 生成的html代码会比较冗余, 2 每一个操作都会伴随页面回发, 3 每个操作都会刷新页面,这样的用户体验极差,就算用up

ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2

运行效果: 此文介绍了根据操作左侧菜单在右面板展示相应内容. 一.主页 先看一下跳转主页的方式:由在webapp根目录下的index.jsp跳转至demo的index.jsp 下面是demo的index.jsp的代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% response.setHeade

JavaScript笔记一统计表格数据

获取表格某列所有单元格内容: querySelectorAll: 字符串转换浮点数: parseFloat; 创建表元素: createElement; 创建文本节点: createTextNode 添加子节点: appendChild var cells = doucment.querySelectorAll("td:nth-of-type(2)"): for (var i=0; i<cells.length; i++) { sum+=parseFloat(cells[i].f

javascript动态添加删除表格

一.DOM= Document Object Model,文档对象模型.DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构.换句话说,这是表示和处理一个HTML或XML文档的常用方法. 通过 JavaScript,您可以重构整个 HTML 文档.您可以添加.移除.改变或重排页面上的项目. 要改变页面的某个东西,JavaScript 就需要获得对 HTML 文档中所有元素进行访问的入口.这个入口,连同对 HTML 元素进行添加.移动.改变或移除的方法和属性,都是通过文档对象模型来

使用BindingList来实现DataGridview数据源为list时的动态增删改

当DataGridview的数据源list的时候,对list进行操作后重新绑定,数据并不会更新 使用BindingList能很好的解决这个问题(framework2.0新增) 例如,使用list时候的代码 /// <summary>     /// 性别类型维护     /// </summary>     public partial class SexFrm : Form     {         IList<SystemCode> list;