动态添加修改删除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下不可用,这个代码是通用的
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值