动态加入改动删除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下不可用,这个代码是通用的

原文地址:https://www.cnblogs.com/zhchoutai/p/8763146.html

时间: 2024-08-03 11:56:00

动态加入改动删除html表格内容的相关文章

动态添加修改删除html表格内容

1.需求 需要实现收银台上添加修改删除商品信息时顾显可以实时看到其变化 2.解决 收银台和顾显通过tcp传输进行数据通信,顾显通过操作html中的表格进行数据添加修改和删除操作 3.代码 mytest.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Dynamic Table<

微信小程序之动态添加、删除指定内容(view)和获取input值

这次遇到个问题: 1. 动态的添加指定的view内容..嗯..很简单..wx:for就搞定 2. 动态添加的内容中有input,最终获取值的时候,要获取到所有input的值并且是一个数组..嗯.. 3. 动态删除指定的已经添加的view内容.. 思路: 1. wx:for 循环view,添加一个,wx:for的内容就增加1个,那么循环的内容是用数字来循环还是数组呢? 2. input是循环出来的,所以不可能给不同的input绑定不同的 bindInput 事件,那么只有绑定一个输入事件,而且所有

jquery动态增加或删除tr和td【实际项目】

难点: (1)动态增加.删除tr和td (2)每天tr和td都有下标,且下标要动态变化, (3)tr和td为什么下标不能随便写,原因是此处需要把所有tr中的数据以list的形式发送到后台对象中,所有每天tr中的tr中name='对象[index].属性',必须有下标且下标要从0开始且要连续不能跳跃 (4)增加tr和td需要学习细节有: 创建td   var $tdName = $("<td class='in-ctt'></td>"); td添加内容   $td

jQuery如何动态添加具有删除按钮的行

jQuery如何动态添加具有删除按钮的行:在实际用中,如果要操作表格的话,那最多的莫过于添加和删除行的操作,一般情况下,动态添加的行也可以动态删除,下面就简单介绍一下如何实现此操作,虽然比较简单,但是还是希望能够或多或少能够给需要的朋友带来一定的帮助.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author"

angular.element 动态添加和删除元素

addClass()-为每个匹配的元素添加指定的样式类名after()-在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点append()-在每个匹配元素里面的末尾处插入参数内容attr() - 获取匹配的元素集合中的第一个元素的属性的值bind() - 为一个元素绑定一个事件处理程序children() - 获得匹配元素集合中每个元素的子元素,选择器选择性筛选clone()-创建一个匹配的元素集合的深度拷贝副本contents()-获得匹配元素集合中每个元素的子元素,包括文字和

jqGrid subGrid配置 如何首次加载动态展开所有的子表格

有时候需求需要默认加载表格的时候把子表格的数据也显示出来,经过研究相关SubGrids API配置如下: 属性 类型 描述 默认值 subGrid boolean 设置为true启用子表格.如果启用子表格,在父表格的左边会添加附加的列.此列包含一个“加”图片表示用户可以点击它展开行,默认所有行的子表格是收缩的. false subGridOptions object 子表格的配置,下面为配置的默认值 -收缩JavaScript代码 {plusicon : "ui-icon-plus",

javascript添加或者删除table表格行代码实例

javascript添加或者删除table表格行代码实例:表格是常用的元素,虽然在布局中已经鲜有使用,已经基本被div css所取代,但是在组织表格数据方面还是有很大的优势的,比使用div css要来的方便,添加或者删除一行也就是其中的tr更是最为常见的操作,下面就通过代码实例简单介绍一下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta

动态产生和删除相关组件并生成SQL语句

(********************************************************************************************************** * * * 窗体描述:产生SQL条件语句,系统模块 [计划管理-打卡] 打印大/小卡 *           能够根据维护进去的条件,生成过软类型: 缸内过软.缸外过软.连续皂洗.空白 * * 关键功能点:1.动态产生和删除子/父等相关组件按钮(注意移动组件位置) *        

JqueryMobile为Listview动态添加、删除查询功能

JqueryMobile的版本不同,引用JS的API也不同,因此为Listview动态添加.删除查询功能的代码也不同. 假设Listview控件内容如下: <ul data-role="listview" id="listview"  data-inset="true"> <li><a href="#">Acura</a></li> <li><a h