實際效果:點擊添加按鈕添加新的一行,在行內可對數據進行編輯和刪除


js新增、刪除table和table中input

實際效果:點擊添加按鈕添加新的一行,在行內可對數據進行編輯和刪除

源代碼:

復制代碼
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
 <style type="text/css">
    table, th, td
    {
        border: 1px solid black;
    }
        
</style>
</head>
<body>
<div class="card">
                <div class="card-body">
                    <div class="row">
                        <div class="col-sm-2"><button type="button" class="btn btn-block btn-primary" onclick="addtmpParam();">添加</button></div>
                    </div>
                    <div class="row" style="margin-top:10px;">
                        <div id="tblServiceList-div" style="width: 100%;">
                            <table class="table table-bordered" id="interfaceParam">
                                <thead>
                                    <tr>
                                        <td>序號</td>
                                        <td>名稱</td>
                                        <td>編號</td>
                                        <td>字段類型</td>
                                        <td>默認值</td>
                                        <td>操作</td>
                                    </tr>
                                </thead>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
 </body>
 <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
 <script>
    function addtmpParam() {
        var Table = document.getElementById("interfaceParam");
        var rowsNum = Table.rows.length-1;
        NewRow = Table.insertRow(); //添加行
        ID = NewRow.insertCell(); //添加列
        Name = NewRow.insertCell();
        NO = NewRow.insertCell();
        Type = NewRow.insertCell();
        defaultV = NewRow.insertCell();
        operate = NewRow.insertCell();
        //屬性賦值
        ID.innerHTML = rowsNum + 1;
        Name.innerHTML = "<input id=Name" + (rowsNum + 1)+" style='width: 80px;' type='text' />";
        NO.innerHTML = "<input id=No" +  (rowsNum + 1) +"  style='width: 80px;' type='text' />";
        Type.innerHTML = "<input id=Type" + (rowsNum + 1) +"  style='width: 80px;' type='text' />";
        defaultV.innerHTML = "<input id=defaultV" + (rowsNum + 1) +"  style='width: 80px;' type='text' />";
        operate.innerHTML = '<div id=operate' + (rowsNum + 1) + '><a style="cursor:pointer;color:#007bff;"  onclick="saveInterfaceParam();">保存</a>&nbsp;&nbsp;<a style="cursor:pointer;color:#007bff;"  onclick="saveInterfaceParam();">取消</a></div>';
    }

    function saveInterfaceParam() {
        var td = event.srcElement; // 通過event.srcElement 獲取激活事件的對象 td
        //獲取行索引,修改input樣式,其中parentElement和table中的標簽層級相關,不是一成不變
        var key = td.parentElement.parentElement.parentElement.innerText.split("\n")[0].trim();
        $("#Name" + key).attr("disabled", true);
        $("#No" + key).attr("disabled", true);
        $("#Type" + key).attr("disabled", true);
        $("#defaultV" + key).attr("disabled", true);
        var div1 = $("#operate" + key);
        div1[0].innerHTML = '<a style="cursor:pointer;color:#007bff;"  onclick="editInterfaceParam()">編輯</a>&nbsp;&nbsp;<a style="cursor:pointer;color:#007bff;"  onclick="deleteInterfaceParam()">刪除</a>';
    }

    function editInterfaceParam() {
        var td = event.srcElement; // 通過event.srcElement 獲取激活事件的對象 td
        var key = td.parentElement.parentElement.parentElement.innerText.split("\n")[0].trim();
        $("#Name" + key).attr("disabled", false);
        $("#No" + key).attr("disabled", false);
        $("#Type" + key).attr("disabled", false);
        $("#defaultV" + key).attr("disabled", false);
        var div1 = $("#operate" + key);
        div1[0].innerHTML = '<a style="cursor:pointer;color:#007bff;"  onclick="saveInterfaceParam();">保存</a>&nbsp;&nbsp;<a style="cursor:pointer;color:#007bff;"  onclick="saveInterfaceParam();">取消</a>';
    }

    function deleteInterfaceParam() {
        var td = event.srcElement; // 通過event.srcElement 獲取激活事件的對象 td
        var key = td.parentElement.parentElement.parentNode.rowIndex;  //獲取行索引
        document.getElementById('interfaceParam').deleteRow(key); //刪除

        //以下操作是保存刪除數據后table中序號重新生成且有序
        var table = document.getElementById("interfaceParam");
        var tableRows = table.rows;
        //保存剩余表中數據到RowArr
        var RowArr = new Array();
        for (var i = 1; i < tableRows.length; i++) {
            var arr = new Array();
            var tempKey = tableRows[i].cells[0].innerText;
            arr.push($("#Name" + tempKey).val());
            arr.push($("#No" + tempKey).val());
            arr.push($("#Type" + tempKey).val());
            arr.push($("#defaultV" + tempKey).val());
            RowArr.push(arr);
        }
        //刪除表中數據
        if (table !== "undefined") {
            while (table.hasChildNodes()) {
                table.removeChild(table.lastChild)
            }
        }
        //重新生成表數據
        for (var i = 0; i < RowArr.length+1;i++) {
            if (i == 0) {
                //生成表頭
                NewRow = table.insertRow(); //添加行
                ID = NewRow.insertCell(); //添加列
                Name = NewRow.insertCell();
                NO = NewRow.insertCell();
                Type = NewRow.insertCell();
                defaultV = NewRow.insertCell();
                operate = NewRow.insertCell();
                ID.innerHTML = "序號";
                Name.innerHTML = "名稱";
                NO.innerHTML = "編號";
                Type.innerHTML = "字段類型";
                defaultV.innerHTML = "默認值";
                operate.innerHTML = '操作';
            }
            else {
                //生成表數據
                NewRow = table.insertRow(); //添加行
                ID = NewRow.insertCell(); //添加列
                Name = NewRow.insertCell();
                NO = NewRow.insertCell();
                Type = NewRow.insertCell();
                defaultV = NewRow.insertCell();
                operate = NewRow.insertCell();
                ID.innerHTML = i;
                var rowsNum = i - 1;
                Name.innerHTML = "<input id=Name" + (rowsNum + 1) + " style='width: 80px;' type='text' value=" + RowArr[rowsNum][0] + " />";
                NO.innerHTML = "<input id=No" + (rowsNum + 1) + "  style='width: 80px;' type='text' value=" + RowArr[rowsNum][1] + " />";
                Type.innerHTML = "<input id=Type" + (rowsNum + 1) + "  style='width: 80px;' type='text' value=" + RowArr[rowsNum][2]+ " />";
                defaultV.innerHTML = "<input id=defaultV" + (rowsNum + 1) + "  style='width: 80px;' type='text' value=" + RowArr[rowsNum][3] + " />";
                operate.innerHTML = '<div id=operate' + (rowsNum + 1) + '><a style="cursor:pointer;color:#007bff;"  onclick="saveInterfaceParam();">保存</a>&nbsp;&nbsp;<a style="cursor:pointer;color:#007bff;"  onclick="saveInterfaceParam();">取消</a></div>';
            }
        }
    }
 </script>
</html>
復制代碼

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM