table动态增加删除

基于网上代码修改实现动态添加表数据行

<!DOCTYPE html>
<html lang="cn">
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        body,html{
            padding: 0;
            margin: 0;
            font-size: 14px;
            color: #000000;
        }
        table{
            border-collapse: collapse;
            width: 100%;
            table-layout: fixed;
        }
        thead{
            background: #3d444c;
            color: #ffffff;
        }
        td,th{
            border: 1px solid #e1e1e1;
            padding: 0;
            height: 30px;
            line-height: 30px;
            text-align: center;
        }
        .hide{
            display:none;
        }
        .dialog-tip{
            width:300px;
            height:200px;
            border:1px solid #aaaaaa;
        }
    </style>
</head>
<body>
<table id="jsTrolley">
    <thead><tr><th>名称</th><th>价格</th><th>操作</th></tr></thead>
    <tbody>
    <tr><td>产品1</td><td>10.00</td><td><a href="javascript:void(0);">删除</a></td></tr>
    <tr><td>产品2</td><td>30.20</td><td><a href="javascript:void(0);">删除</a></td></tr>
    <tr><td>产品3</td><td>20.50</td><td><a href="javascript:void(0);">删除</a></td></tr>
    </tbody>
    <tfoot><tr><th>总计</th><td colspan="2">60.70(3件商品)</td></tr></tfoot>
</table>
<button onclick="dialog()">添加</button>

<div id="dialogId" class="hide" style=" width:300px;height:200px;border:1px solid #3d444c;margin-left:40%">
    <input type="text" name="name" class="one"/>
    <input type="text" name="price"  class="two"/>
    <button onclick="save()">确定</button>
    <button onclick="cancel()">取消</button>
</div>


<script type="text/javascript">
    var tip = document.getElementById("dialogId");
    var dialog = function(){
        tip.className = "";
    };
//    var sum = 60.70;
    var items = {};

    var save = function(){
        var itemObj = {};
        itemObj.name = document.getElementsByClassName("one")[0].value;
        itemObj.price = parseInt(document.getElementsByClassName("two")[0].value);
        items = itemObj;
        add(items);
        items = {};
        tip.className = "hide";
    }

    var cancel = function(){
        tip.className = "hide";
    }


//闭包实现局部变量保存在内存中
    function a(d){
        var sum = 60.70;
        if(!d.length){
            function c(d){
                if(d && !d.length){
                    sum = sum + d.price;
                }
                else return sum;
                return sum;

            };
        }
        return c;
    };
    var sumary = a(items);
    function add(items) {
            var add = document.createElement("tr");
            var src = document.getElementsByTagName("tbody");
            add.innerHTML = "<td>"+items.name+"</td><td>"+items.price+"</td><td><a href='javascript:void(0);'>删除</a></td>";
            src[0].appendChild(add);
        var tableObj = document.getElementById("jsTrolley");
        var num = tableObj.rows.length -2;
        var len = tableObj.rows.length;
//        sum+=items.price;
//        tableObj.rows[len-1].cells[1].innerText  =sum.toFixed(2)+"("+num+"件商品)";
        tableObj.rows[len-1].cells[1].innerText  =sumary(items).toFixed(2)+"("+num+"件商品)";
        bind();
    }

    function bind() {
        var arr = document.getElementsByTagName("a");
        var src = document.getElementsByTagName("tbody");
        s = src[0];
        var len = arr.length;
        for(var i =0 ;i<len ;i++)
        {
            arr[i].setAttribute("onclick","foo(s,this)");
        }
    }

    function foo(x,y){
        var sum = sumary();
        var tar = y.parentNode.parentNode;
        x.removeChild(tar);
        var v = y.parentNode.previousSibling.innerHTML;
        sum -=v;
        var tableObj = document.getElementById("jsTrolley");
        var num = tableObj.rows.length -2;
        tableObj.rows[tableObj.rows.length-1].cells[1].innerText = sum.toFixed(2)+"("+num+"件商品)";

    }

    bind();
    function show(){
        var    tableRowInfo ="";
        tableObj = document.getElementById("jsTrolley");
        for(var i =0 ;i<tableObj.rows.length ; i++){

            for(var j=0 ;j<tableObj.rows[i].cells.length ; j++){
                tableRowInfo  +=  tableObj.rows[i].cells[j].innerText + " ";
            }
            console.log(tableRowInfo); // 打印每行信息
            tableRowInfo ="";
        }
    }
    show();

</script>
</body>
</html>

猜你喜欢

转载自www.cnblogs.com/bxlbear/p/9473828.html