jQuery之添加删除记录

添加删除记录(原生)

示例:

/*style.css*/
@CHARSET "UTF-8";
#total {
    width: 450px;
    margin-left: auto;
    margin-right: auto;
}

ul {
    list-style-type: none;
}

li {
    border-style: solid;
    border-width: 1px;
    padding: 5px;
    margin: 5px;
    background-color: #99ff99;
    float: left;
}

.inner {
    width: 400px;
    border-style: solid;
    border-width: 1px;
    margin: 10px;
    padding: 10px;
    float: left;
}

#employeeTable {
    border-spacing: 1px;
    background-color: black;
    margin: 80px auto 10px auto;
}

th,td {
    background-color: white;
}

#formDiv {
    width: 250px;
    border-style: solid;
    border-width: 1px;
    margin: 50px auto 10px auto;
    padding: 10px;
}

#formDiv input {
    width: 100%;
}

.word {
    width: 40px;
}

.inp {
    width: 200px;
}
#employeeTable, #employeeTable th, #employeeTable td{
    border: 1px solid;
    border-spacing: 0;

}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>添加删除记录(原生)</title>
    <link type="text/css" rel="stylesheet" href="style.css" />
</head>
<body>

<table id="employeeTable">
    <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Salary</th>
        <th>&nbsp;</th>
    </tr>
    <tr>
        <td>Tom</td>
        <td>tom@tom.com</td>
        <td>5000</td>
        <td><a href="deleteEmp?id=001">Delete</a></td>
    </tr>
    <tr>
        <td>Jerry</td>
        <td>jerry@sohu.com</td>
        <td>8000</td>
        <td><a href="deleteEmp?id=002">Delete</a></td>
    </tr>
    <tr>
        <td>Bob</td>
        <td>bob@tom.com</td>
        <td>10000</td>
        <td><a href="deleteEmp?id=003">Delete</a></td>
    </tr>
</table>

<div id="formDiv">
    <h4>添加新员工</h4>
    <table>
        <tr>
            <td class="word">name: </td>
            <td class="inp">
                <input type="text" name="empName" id="empName" />
            </td>
        </tr>
        <tr>
            <td class="word">email: </td>
            <td class="inp">
                <input type="text" name="email" id="email" />
            </td>
        </tr>
        <tr>
            <td class="word">salary: </td>
            <td class="inp">
                <input type="text" name="salary" id="salary" />
            </td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <button id="addEmpButton" value="abc">
                    Submit
                </button>
            </td>
        </tr>
    </table>
</div>

<script type="text/javascript">
    /*
     * 功能说明:
     * 1.点击'Submit',根据输入的信息在表单中生成一行员工信息
     * 2.点击Delete链接,提示删除当前行信息,点击确定后删除信息
     * 技术要点:
     * 1.DOM查询
     * 2.绑定事件监听
     * 3.DOM增删改
     * 4.取消事件的默认行为
     */
    function removeTr(){
        var trNode = this.parentNode.parentNode;
        var tds = trNode.getElementsByTagName("td");
        var nameStr = tds[0].firstChild.nodeValue;
        var flag = confirm("真的要删除" + nameStr + "的信息吗?");
        if(flag){
            trNode.parentNode.removeChild(trNode);
        }
        return false;
    }

    window.onload = function(){
        //目标1:点击Delete删除记录
        var aEles = document.getElementsByTagName("a");
        for(var i = 0;i < aEles.length;i++){
            aEles[i].onclick = removeTr;
        }
        //目标2:点击Submit增加记录
        var subBtn = document.getElementById("addEmpButton");
        subBtn.onclick = function(){
            var nameText = trim(document.getElementById("empName").value);
            var emailText = trim(document.getElementById("email").value);
            var salaryText = trim(document.getElementById("salary").value);

            document.getElementById("empName").value = nameText;
            document.getElementById("email").value = emailText;
            document.getElementById("salary").value = salaryText;

            if(nameText == "" || emailText == "" || salaryText == ""){
                alert("您输入的内容不完整");
                return ;
            }

            //组装节点
            var nameTd = document.createElement("td");
            nameTd.appendChild(document.createTextNode(nameText));
            var emailTd = document.createElement("td");
            emailTd.appendChild(document.createTextNode(emailText));
            var salaryTd = document.createElement("td");
            salaryTd.appendChild(document.createTextNode(salaryText));
            var aTd = document.createElement("td");
            var aNewEle = document.createElement("a");
            aNewEle.href = "deleteEmp?id=XXX";
            aNewEle.appendChild(document.createTextNode("Delete"));
            aNewEle.onclick = removeTr;
            aTd.appendChild(aNewEle);

            var trNode = document.createElement("tr");
            trNode.appendChild(nameTd);
            trNode.appendChild(emailTd);
            trNode.appendChild(salaryTd);
            trNode.appendChild(aTd);

            var empTable = document.getElementById("employeeTable");
            empTable.appendChild(trNode);
        }

        function trim(str){
            var reg = /^\s*|\s*$/g;
            return str.replace(reg,"");
        }
    }
</script>
</body>
</html>

添加删除记录(jQuery)

示例:

/*style.css*/
@CHARSET "UTF-8";
#total {
    width: 450px;
    margin-left: auto;
    margin-right: auto;
}

ul {
    list-style-type: none;
}

li {
    border-style: solid;
    border-width: 1px;
    padding: 5px;
    margin: 5px;
    background-color: #99ff99;
    float: left;
}

.inner {
    width: 400px;
    border-style: solid;
    border-width: 1px;
    margin: 10px;
    padding: 10px;
    float: left;
}

#employeeTable {
    border-spacing: 1px;
    background-color: black;
    margin: 80px auto 10px auto;
}

th,td {
    background-color: white;
}

#formDiv {
    width: 250px;
    border-style: solid;
    border-width: 1px;
    margin: 50px auto 10px auto;
    padding: 10px;
}

#formDiv input {
    width: 100%;
}

.word {
    width: 40px;
}

.inp {
    width: 200px;
}
#employeeTable, #employeeTable th, #employeeTable td{
    border: 1px solid;
    border-spacing: 0;

}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>添加删除记录(jQuery)</title>
    <link type="text/css" rel="stylesheet" href="style.css" />
</head>
<body>

<table id="employeeTable">
    <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Salary</th>
        <th>&nbsp;</th>
    </tr>
    <tr>
        <td>Tom</td>
        <td>tom@tom.com</td>
        <td>5000</td>
        <td><a href="deleteEmp?id=001">Delete</a></td>
    </tr>
    <tr>
        <td>Jerry</td>
        <td>jerry@sohu.com</td>
        <td>8000</td>
        <td><a href="deleteEmp?id=002">Delete</a></td>
    </tr>
    <tr>
        <td>Bob</td>
        <td>bob@tom.com</td>
        <td>10000</td>
        <td><a href="deleteEmp?id=003">Delete</a></td>
    </tr>
</table>

<div id="formDiv">
    <h4>添加新员工</h4>
    <table>
        <tr>
            <td class="word">name:</td>
            <td class="inp">
                <input type="text" name="empName" id="empName"/>
            </td>
        </tr>
        <tr>
            <td class="word">email:</td>
            <td class="inp">
                <input type="text" name="email" id="email"/>
            </td>
        </tr>
        <tr>
            <td class="word">salary:</td>
            <td class="inp">
                <input type="text" name="salary" id="salary"/>
            </td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <button id="addEmpButton" value="abc">
                    Submit
                </button>
            </td>
        </tr>
    </table>
</div>

<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript">
    /*
     * 功能说明:
     * 1.点击'Submit',根据输入的信息在表单中生成一行员工信息
     * 2.点击Delete链接,提示删除当前行信息,点击确定后删除信息
     * 技术要点:
     * 1.DOM查询
     * 2.绑定事件监听
     * 3.DOM增删改
     * 4.取消事件的默认行为
     */
    $(function () {
        $('#addEmpButton').click(function () {
            var $empName = $('#empName');
            var $email = $('#email');
            var $salary = $('#salary');

            var empName = $empName.val();
            var email = $empName.val();
            var salary = $empName.val();
            var id = Date.now();

             // <tr>
             //   <td>Bob</td>
             //   <td>bob@tom.com</td>
             //   <td>10000</td>
             //   <td><a href="deleteEmp?id=003">Delete</a></td>
             // </tr>

            $('<tr></tr>')
                .append('<td>'+empName+'</td>')
                .append('<td>'+email+'</td>')
                .append('<td>'+salary+'</td>')
                .append('<td><a href="deleteEmp?id="'+id+'>Delete</a></td>')
                .appendTo('#employeeTable')
                .find('a')
                .click(clickA);

            $empName.val('');
            $email.val('');
            $salary.val('');

        })

        $('a').click(clickA);

        function clickA (event) {
            event.preventDefault();
            var $tr = $(this).parent().parent();
            var name = $tr.children('td:first').html();
            if(confirm('确定删除'+name+'吗?')) {
                $tr.remove();
            }
        }
    })
</script>
</body>
</html>