动态加入改动删除html表格内容
1.需求
须要实现收银台上加入改动删除商品信息时顾显能够实时看到其变化
2.解决
收银台和顾显通过tcp传输进行数据通信,顾显通过操作html中的表格进行数据加入改动和删除操作
3.代码
mytest.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Dynamic Table</title>
<script type="text/javascript" src="js/dynamic_table.js">
</script>
</head>
<body>
<table>
<tr>
<th>名称</th>
<th>颜色</th>
<th>尺寸</th>
<th>单位价格</th>
<th>折扣</th>
<th>数量</th>
<th>金额</th>
</tr>
<tbody id="goods">
</tbody>
<tr>
<td><input type="button" value="add" onClick="addRow('多彩1234', '红色', 'XL', '1000.00', '1.00', '1', '1000.00')" /></td>
<td><input type="button" value="del" onClick="removeRow('goods', '0')"/></td>
<td><input type="button" value="modify" onClick="modifyRow('goods', '0', '0', '张小宝')" /></td>
<td><input type="button" value="clear" onClick="clearRows('goods')"/></td>
</tr>
</table>
</body>
</html>
dynamic_table.js
onerror=handleErr
var txt=""
function handleErr(msg,url,l)
{
    txt="本页中存在错误。\n\n"
    txt+="错误:" + msg + "\n"
    txt+="URL: " + url + "\n"
    txt+="行:" + l + "\n\n"
    txt+="点击“确定”继续。\n\n"
    alert(txt)
    return true
}
function addRow(name, color, size, unit, discount, count, sum)
{
    var bodyObj=document.getElementById("goods");
    if(bodyObj==null)
    {
        alert("Body of Table not Exist!");
        return;
    }
    var rowCount = bodyObj.rows.length;
    //var cellCount = myarray.length;
    var newRow = bodyObj.insertRow(rowCount++);
    newRow.insertCell(0).innerHTML=name;
    newRow.insertCell(1).innerHTML=color;
    newRow.insertCell(2).innerHTML=size;
    newRow.insertCell(3).innerHTML=unit;
    newRow.insertCell(4).innerHTML=discount;
    newRow.insertCell(5).innerHTML=count;
    newRow.insertCell(6).innerHTML=sum;
}
function removeRow(tbodyID, row)
{
    var bodyObj=document.getElementById(tbodyID);
    if(bodyObj==null) 
    {
        alert("Body of Table not Exist!");
        return;
    }
    var nrow = Number(row);
    if (nrow <= bodyObj.rows.length)
        bodyObj.deleteRow(nrow);
    else
        alert("nrow is less.");
}
function modifyRow(tbodyID, row, col, newvalue)
{
    var nrow = Number(row);
    var ncol = Number(col);
    var bodyObj=document.getElementById(tbodyID);
    if(bodyObj==null)
    {
        alert("Body of Table not Exist!");
        return;
    }
    try
    {
        //var tableObj = bodyObj.parentNode;
        if (nrow < bodyObj.rows.length && ncol < bodyObj.getElementsByTagName('tr')[nrow].getElementsByTagName('td').length)
        {
            //这个在ie下能够 在google下不行
            //bodyObj.rows(nrow).cells(ncol).innerHTML = newvalue;
            //bodyObj.rows[nrow].childNodes[ncol].innerHTML = newvalue;
            //这个在ie和google下都能够
            document.getElementById(tbodyID).getElementsByTagName('tr')[nrow].getElementsByTagName('td')[ncol].innerHTML = newvalue;
        }
        else
            alert("empty.");
    }
    catch (err)
    {
        alert(err.description);
    }
}
function clearRows(tbodyID)
{
    var bodyObj=document.getElementById(tbodyID);
    if(bodyObj==null)
    {
        alert("Body of Table not Exist!");
        return;
    }
    for (var i = 0; i < bodyObj.rows.length; )
        bodyObj.deleteRow(i);
}
在win7 ie10和google 下执行正常
4.备注
1.最好不使用windows自带的记事本。会存在编码问题,推荐使用notepad++,编码为utf8 无bom
2.部分js函数会存在ie下可用。google下不可用,这个代码是通用的
动态加入改动删除html表格内容的更多相关文章
- 在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的“删除”超链接
		
查看本章节 查看作业目录 需求说明: 在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的"删除"超链接,使用 DOM 节点的删除操作将对应的 ...
 - 浅谈js中如何动态添加表头/表列/表格内容
		
我想很多童鞋用js动态向表格中添加数据很熟悉,而且也觉得非常简单!是的,对于写页面的童鞋来说,最喜欢写查询的页面了,动态向表格绑定数据.用for循环就可以轻松搞定. 如果我们的业务需求有所变化,可能我 ...
 - 微信小程序之动态添加、删除指定内容(view)和获取input值
		
这次遇到个问题: 1. 动态的添加指定的view内容..嗯..很简单..wx:for就搞定 2. 动态添加的内容中有input,最终获取值的时候,要获取到所有input的值并且是一个数组..嗯.. 3 ...
 - jQuery实现表格行的动态增加与删除(改进版)
		
之前写过一个简单的利用jQuery实现表格行的动态增加与删除的例子,有些人评论说"如果表格中是input元素,那么删除后的东西都将自动替换,这样应该是有问题的,建议楼主改进!",故 ...
 - mySQL用代码添加表格内容 删除数据方法
		
通过代码对表格内容操作: 1.添加数据insert into Info values('p009','张三',1,'n001','2016-8-30 12:9:8') ; 给特定的列添加数据inser ...
 - 编辑表格输入内容、根据input输入框输入数字动态生成表格行数、编辑表格内容提交传给后台数据处理
		
编辑表格输入内容.根据input输入框输入数字动态生成表格行数.编辑表格内容提交传给后台数据处理 记录自己学习做的东西,写的小demo,希望对大家也有帮助! 代码如下: <!DOCTYPE ht ...
 - js实现前端动态筛选表格内容
		
代码参考: http://www.sharejs.com/codes/javascript/4289 http://www.jb51.net/article/103420.htm https://ww ...
 - jquery动态增加或删除tr和td【实际项目】
		
难点: (1)动态增加.删除tr和td (2)每天tr和td都有下标,且下标要动态变化, (3)tr和td为什么下标不能随便写,原因是此处需要把所有tr中的数据以list的形式发送到后台对象中,所有每 ...
 - jqGrid subGrid配置 如何首次加载动态展开所有的子表格
		
有时候需求需要默认加载表格的时候把子表格的数据也显示出来,经过研究相关SubGrids API配置如下: 属性 类型 描述 默认值 subGrid boolean 设置为true启用子表格.如果启用子 ...
 
随机推荐
- 利用ncurses库开发终端工具箱(1)—— ToDoList小工具开发
			
准备工作 腾讯云服务器(Ubuntu),C++编程语言 由于想输出界面中包含中文,所以安装库 libncursesw5,依次输入下面三行命令 sudo apt-get install libncurs ...
 - 图形界面远程访问Linux(Debian安装VNC以及开机启动)
			
https://blog.csdn.net/wangxiaopeng0329/article/details/51569882
 - AC日记——The Shortest Path in Nya Graph hdu 4725
			
4725 思路: 拆点建图跑最短路: 代码: #include <cstdio> #include <cstring> #include <iostream> #i ...
 - 如何配置Java环境,包括JDK,Maven等
			
下载JDK并安装 搜索JDK,官网立马就出来了,下载之后个人觉得毕竟开发,毕竟这东西不大,C盘稳一点,安装在C盘可以的 配置 右键打开计算机->属性->高级系统设置->高级-> ...
 - javascript中的this总结
			
1.关于this 我们需要根据 "调用位置" 上函数的 "调用方式" 来确定函数中this使用的 "绑定规则" 2.绑定规则 非严格模式下: ...
 - 【webssh】shellinabox搭建
			
shellinabox搭建 centos环境安装命令 # yum install epel-release # yum install shellinabox 启动与关闭: service shell ...
 - [BZOJ5248][九省联考2018]一双木棋(连通性DP,对抗搜索)
			
5248: [2018多省省队联测]一双木棋 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 43 Solved: 34[Submit][Status ...
 - [BZOJ4710][JSOI2011]分特产(组合数+容斥原理)
			
4710: [Jsoi2011]分特产 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 395 Solved: 262[Submit][Status] ...
 - CodeForces - 995B  Suit and Tie
			
题面在这里! 明明可以出成n<=1e5但是因为拒绝写数据结构而只出到n<=100,,,出题人真的很棒棒.. 一个显然的贪心就是,把和当前序列最左端的数匹配的数移到它的右边,这样迭代下去总是 ...
 - 【推导】计蒜客17116 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 C. Sum
			
题意:S(x)被定义为x的十进制表示下的数位之和.给你x,让你找一个正整数k,使得S(kx)能被233整除.k不超过2千位. 由于x不超过1000000,不论x是多少,10000000重复233次一定 ...