DOM之实现学生管理系统案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<table>
    <tr>
        <td>姓名</td>
        <td>年龄</td>
        <td>操作</td>
    </tr>
    <tr>
        <td>张三</td>
        <td>25</td>
        <td><button>删除</button></td>
    </tr>
    <tr>
        <td>李四</td>
        <td>22</td>
        <td><button>删除</button></td>
    </tr>
    <tr>
        <td>王五</td>
        <td>21</td>
        <td><button>删除</button></td>
    </tr>
    <tr>
        <td>赵六</td>
        <td>27</td>
        <td><button>删除</button></td>
    </tr>
</table>
<input type="text" placeholder="请输入姓名">
<input type="text" placeholder="请输入年龄">
<button id="btn">提交</button>
<script type="text/javascript">
    window.onload = function () {

        var inputNodes = document.querySelectorAll('input');
        var btn = document.querySelector('#btn');
        var tBodyNode = document.querySelector('table>tbody');
//      获取删除按钮集合
        var delBtns = document.querySelectorAll('table button');
        
        //      给提交按钮绑定单击事件   当用户点击按钮时 获取两个输入框的内容 且去除空格之后不能为空
        btn.onclick = function () {
            //          获取两个输入框的内容
            var contentName = inputNodes[0].value;
            var contentAge = inputNodes[1].value;
            
            if(contentName.trim() && contentAge.trim()){
                //                alert('创建');
                //            <tr>
                    //                <td>张岩</td>
//                <td>3</td>
//                <td><button>删除</button></td>
//            </tr>
//              创建当前行的tr元素
var trNode = document.createElement('tr');

//              创建名字的td
var tdName = document.createElement('td');
//              将第一个输入框的内容 作为文本 设置给当前的td
tdName.innerHTML = contentName;
//              将处理好的td  添加到tr当中
trNode.appendChild(tdName);

var tdAge = document.createElement('td');
tdAge.innerHTML = contentAge;
trNode.appendChild(tdAge);

var tdBtn = document.createElement('td');
var delBtn = document.createElement('button');
delBtn.innerHTML = '删除';
tdBtn.appendChild(delBtn);
trNode.appendChild(tdBtn);
//              代码执行到此处  trNode  当中就是处理好的要添加到页面的结构   追加到table当中即可
console.log(trNode)
tBodyNode.appendChild(trNode);


}else{
    alert('请不要输入空信息')
}
inputNodes[0].value = inputNodes[1].value = '';
}


//      循环事件绑定
for (var i = 0; i < delBtns.length; i++) {
    delBtns[i].onclick = function () {
        
        //              根据当前点击的删除按钮  找到其对应的行元素 tr
        var nowTr = this.parentNode.parentNode;
        //              获取当前行的 第一个子元素的文本 作为提示信息
        var name = nowTr.firstElementChild.innerHTML;
        //                console.log(name)
        //              confirm   确认框   可传递一个参数  类型为字符串 作用为 确认框的提示信息
        //              确认框包含两个按钮  确定和取消   点击确定按钮 则方法返回true  点击取消按钮则方法返回false
        //              所以通常情况下 我们将confirm 和if  结合在一起使用  将confirm的调用 写在if的判断条件当中
        if(confirm('你确定要删除'+ name +'的信息吗?')){
            //                  用户点击了确定按钮  confirm返回值为true  才会进入到这个if当中 我们需要执行删除当前tr的逻辑
            tBodyNode.removeChild(nowTr);
        }else{
            alert('你取消了这个操作')
        }
    }
}    
//      作业   1:将当前删除逻辑 使用事件委托实现
//             2:dom2级事件的兼容解绑
}
</script>
</body>
</html>
posted @ 2021-08-12 11:48  拾呓  阅读(106)  评论(0编辑  收藏  举报