对表格的增删改

实现点击“添加商品”,插入新的一栏,然后输入相应的东西。点击“删除”,删除整行。点击修改,显示修改框,“修改”按钮变成“确定”按钮,修改完成后,文本框消失

html代码:

<body>
        <center>
            
                <table id="order" width="600" border="1">
                    <tr>
                        <td>商品名称</td>
                        <td>数量</td>
                        <td>价格</td>
                        <td>操作</td>
                    </tr>
                    <tr>
                        <td>哇哈哈矿泉水</td>
                        <td>32</td>
                        <td>2</td>
                        <td><input type="button"  value="删除" οnclick="del(this)"><input type="button" value="修改" οnclick="update(1)"></td>
                    </tr>
                </table>
                <button οnclick="add()">添加商品</button>
        </center>
    </body>

JS代码:

<script>
            function add(){
                var table = document.getElementById("order");
                var index = table.rows.length;   //表格的行数,目前为1
                var row = table.insertRow(index);  //插入一个新行并返回新的行数,现在为2
                
                var c1 = row.insertCell(0);  //在新行中插入一个列,并返回新插入的列
                c1.innerHTML = prompt("请输入商品名称:");
                
                var c2 = row.insertCell(1);
                c2.innerHTML = prompt("请输入商品数量");
                
                var c3 = row.insertCell(2);
                c3.innerHTML = prompt("请输入商品价格:");
                
                var c4 = row.insertCell(3);  //操作的单元格
                //创建删除和修改按钮
                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("onclick","update("+index+")");
                
                //把按钮加入到单元格中
                c4.appendChild(b1);
                c4.appendChild(b2);
            }
            function del(but){   //通过按钮来删除行
                but.parentNode.parentNode.remove();   //先取到父节点td,再取父节点tr,然后删除
            }
            function update(index){   //通过索引来修改
                var table = document.getElementById("order");
                var cell = table.rows[index].cells[3];//获取修改按钮
                cell.lastChild.setAttribute("value","确定");//把修改按钮改为确认按钮
                
                //为按钮重新绑定事件
                cell.lastChild.setAttribute("onclick","edit("+index+")");
                
                
                //修改数量
                var cellNumber = table.rows[index].cells[1];   //获取数量那个列
                var txt = document.createElement("input");  //创建一个文本框
                txt.setAttribute("value",cellNumber.innerHTML);  //显示已经有的数量
                txt.setAttribute("size",5);  //设置文本框的长度
                cellNumber.innerHTML = "";//清除文本框的数据
                cellNumber.appendChild(txt);  //把新输入的文本框加入到单元格
            }
            function edit(index){
                var table = document.getElementById("order");
                var cell = table.rows[index].cells[3];//获取修改按钮
                cell.lastChild.setAttribute("value","确定");//把修改按钮改为确认按钮
                cell.lastChild.setAttribute("onclick","update("+index+")");
                
                //把修改后的文本框去掉
                var cellNumber = table.rows[index].cells[1];
                var num = cellNumber.firstChild.value;  //取文本框的值
                cellNumber.removeChild(cellNumber.firstChild);  //删除文本框
                cellNumber.innerHTML = num;
            
            }
        </script>


但是没有加添加的验证,如果添加的时候不输入,则还是会添加一个空白行,这个bug后期来改正!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值