JavaScript入门到精通(十)


本章节通过练习需要重点掌握对DOM增删改查过程!,代码量变多,但是并不复杂难懂

91. DOM查询(二)

获取元素节点的子节点,通过具体的元素节点调用
getElementsByTagName( ):方法,返回当前节点的指定标签名后代节点
childNodes:属性,表示当前节点的所有子节点,包括文本节点,IE8及以下的浏览器不会将空白文本当作子节点
children:属性,表示当前节点的所有子元素,不包括文本节点,且浏览器通用
firstChild:属性,表示当前节点的第一个子节点
firstElementChild:属性,表示当前节点的第一个子元素,不包括文本节点,IE8以下不兼容
lastChild:属性,表示当前节点的最后一个子节点

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        window.onload = function(){
            var btn4 = document.getElementById("btn4");
            btn4.onclick = function(){
                var city = document.getElementById("city");
                var lis = city.getElementsByTagName("li"); //通过具体的元素节点调用getElementsByTagName()
                for(var i=0;i<lis.length;i++){
                    alert(lis[i].innerHTML);
                }
            };

            var btn5 = document.getElementById("btn5");
            btn5.onclick = function(){
                var city = document.getElementById("city");
                var cns = city.childNodes;//放回#city的所有子节点,包括文本节点(如前面空白换行)
                alert(cns.length);
                // for(var i=0;i<cns.length;i++){
                    // alert(cns[i]);
                // }
                var cnss = city.children;//返回#city的所有子元素,不包括文本节点
                alert(cnss.length);
            };

            var btn6 = document.getElementById("btn6");
            btn6.onclick = function(){
                var people = document.getElementById("people");

                var firstChild = people.firstChild;
                alert(firstChild);//返回当前元素的第一个子节点,包括文本节点(如前面空白换行)

                var firstChilds = people.firstElementChild;
                alert(firstChilds.innerHTML);//返回当前元素的第一个子元素,不包括文本节点

            };

            var btn7 = document.getElementById("btn7");
            btn7.onclick = function(){
                var people = document.getElementById("people");

                var lastChild = people.lastChild;
                alert(lastChild);//返回当前元素的第一个子节点,包括文本节点(如前面空白换行)

                var lastChilds = people.lastElementChild;
                alert(lastChilds.innerHTML);//返回当前元素的第一个子元素,不包括文本节点
            }
        };
    </script>
</head>
<body>
    <ul id="city">
        <li >北京</li>
        <li>上海</li>
        <li>广州</li>
        <li>深圳</li>
    </ul>
    <ul id="people">
        <li >张三</li>
        <li>李四</li>
        <li>王五</li>
    </ul>
    <br>
    <button id="btn4">查找#city的所有li节点</button>
    <button id="btn5">查找#city的所有子节点</button>
    <button id="btn6">查找#people的第一个子节点</button>
    <button id="btn7">查找#people的最后一个子节点</button>
</body>
</html>

在这里插入图片描述

92. DOM查询(三)

获取父节点和兄弟节点,通过具体的节点调用
parentNode:属性,表示当前节点的父节点,不会是文本节点
previousSibling:属性,表示当前节点的前一个兄弟节点,可能获取到空白的文本
nextSibling:属性,表示当前节点的后一个兄弟节点

innerText:属性,获取到元素的文本内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function myClick(idStr,fun){//定义一个通用点击响应函数
            var btn = document.getElementById(idStr);
            btn.onclick = fun;
        }
        window.onload = function(){
            myClick("btn8",function(){
                var bj = document.getElementById("bj");
                var pn = bj.parentNode;
                alert(pn.innerText);//innerText获取元素内部的文本内容
            });

            myClick("btn9",function(){
                var ls = document.getElementById("ls");
                var pre = ls.previousSibling;
                alert(pre.innerText);//previousSibling:返回当前元素的前一个兄弟节点,包括文本节点

                var pres = ls.previousElementSibling;
                alert(pres.innerText);//previousElementSibling:返回当前元素的前一个兄弟元素,不包括文本节点,IE8及以下不兼容
            });

            myClick("btn10",function(){
                var um = document.getElementById("username");
                alert(um.value);
            });

            myClick("btn11",function(){
                var um = document.getElementById("username");
                um.value = "我是张三";
                alert(um.value);
            });
        };
    </script>
</head>
<body>
    <ul id="city">
        <li id="bj">北京</li>
        <li>上海</li>
        <li>广州</li>
        <li>深圳</li>
    </ul>
    <ul id="people">
        <li id="zs">张三</li>
        <li id="ls">李四</li>
        <li>王五</li>
    </ul>
    name:<input type="text" name="name" id="username" value="张三">
    <br>
    <br>
    <button id="btn8">查找#bj的父节点</button>
    <button id="btn9">查找#ls的前一个兄弟节点</button>
    <button id="btn10">读取username的value属性值</button>
    <button id="btn11">设置username的value属性值</button>
</body>
</html>

在这里插入图片描述

93. 全选练习

在事件响应函数中,响应函数给谁绑定的,this就是谁

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        input{
            margin: 5px 10px;
        }
        button{
            margin: 5px 10px;
        }
    </style>
    <script>
        window.onload = function(){
            var items = document.getElementsByName("items");

            //全选按钮
            var checkedAllBtn = document.getElementById("checkedAllBtn");
            checkedAllBtn.onclick = function(){
                //获取4个多选框
                for(var i=0;i<items.length;i++){
                    items[i].checked = true; 
                }
                checkedAllBox.checked = true;
            };
            //全不选按钮
            var checkedNoBtn = document.getElementById("checkedNoBtn");
            checkedNoBtn.onclick = function(){
                //获取4个多选框
                for(var i=0;i<items.length;i++){
                    items[i].checked = false; 
                }
                checkedAllBox.checked = false;
            };
            //反选按钮
            var checkedRevBtn = document.getElementById("checkedRevBtn");
            checkedRevBtn.onclick = function(){
                checkedAllBox.checked = true;//默认设置为选中状态
                //获取4个多选框
                for(var i=0;i<items.length;i++){
                    // if(items[i].checked){
                    //     items[i].checked = false; 
                    // }
                    // else{
                    //     items[i].checked = true; 
                    // }
                    items[i].checked = !items[i].checked

                    if(!items[i].checked){
                            checkedAllBox.checked = false;//有一个没选中,设置为没选中状态
                        }
                }
            };
            //提交按钮
            var sendBtn = document.getElementById("sendBtn");
            sendBtn.onclick = function(){
                //获取4个多选框
                for(var i=0;i<items.length;i++){
                    if(items[i].checked){
                        alert(items[i].value);
                    }
                }
            };
            //全选\全不选按钮
            var checkedAllBox = document.getElementById("checkedAllBox");
            checkedAllBox.onclick = function(){
                //获取4个多选框
                for(var i=0;i<items.length;i++){
                    items[i].checked = this.checked;
                    }
                }

            //items
            for(var i=0;i<items.length;i++){
                items[i].onclick = function(){
                    checkedAllBox.checked = true;//设置为选中状态
                    for(var j=0;j<items.length;j++){
                        if(!items[j].checked){
                            checkedAllBox.checked = false;//有一个没选中,设置为没选中状态
                            break;
                        }
                    }
                };
            }

            };

    </script>
</head>
<body>
    <form method="post" action="">
        你爱好的运动是?<input type="checkbox" id="checkedAllBox">全选/全不选
        <br>
        <input type="checkbox" name="items" value="足球">足球
        <input type="checkbox" name="items" value="篮球">篮球
        <input type="checkbox" name="items" value="羽毛球">羽毛球
        <input type="checkbox" name="items" value="乒乓球">乒乓球
        <br>
        <input type="button" id="checkedAllBtn" value="全 选">
        <input type="button" id="checkedNoBtn" value="全不选">
        <input type="button" id="checkedRevBtn" value="反 选">
        <input type="button" id="sendBtn" value="提 交">
    </form>
    
</body>
</html>

在这里插入图片描述

94. DOM查询其它方法

获取body标签:在document中有一个属性body,保存的是body的引用
  例如:var body = document.body;

document.documentElement:保存的是HTML根标签
document.all:代表页面中所有元素

document.getElementsByClassName( ):根据类选择器查询一个元素节点对象,支持IE9+
document.querySelector( ):根据一个CSS选择器来查询一个元素节点对象,支持IE8+,该方法只会返回唯一的第一个元素
document.querySelectorAll( ):根据一个CSS选择器来查询多个元素节点对象,支持IE8+,即使符合条件的元素只有一个,也返回数组保存结果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        window.onload = function(){
            var body = document.body;
            console.log(body);//获取body标签
            var html = document.documentElement;
            console.log(html);//获取html标签
            var all =  document.all;
            console.log(all);//获取页面所有元素
            for(var i=0;i<all.length;i++){
                console.log(all[i],i);
            }
            var box = document.getElementsByClassName("box");//支持IE9+
            console.log(box);

            var inDiv = document.querySelector(".box div");//支持IE8+
            console.log(inDiv.innerHTML);

        };
    </script>
</head>
<body>
    <div class="box">
        <div>我是内部div</div>
    </div>
</body>
</html>

在这里插入图片描述

95. DOM增删改

document.creatElement( ):创建一个元素节点对象,需要一个标签名作为参数,根据该标签名创建元素节点对象,并将创建的对象作为返回值返回

document.creatTextNode( ):创建一个文本节点对象,需要一个文本内容作为参数,根据该内容创建文本节点,并将新的节点返回

appendChild( ):向一个父节点添加一个新的子节点

insertBefore(新节点,旧节点):在指定的子节点前面插入新的子节点,需要父节点调用

replaceChild(新节点,旧节点):使用指定的子节点替换已有的子节点,需要父节点调用

removeChild( ):删除子节点,需要父节点调用

innerHTML:该属性也可以完成DOM的增删改相关操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            margin: 10px 5px;
        }
    </style>
    <script>
        window.onload = function(){
            //创建一个"广州"节点,添加到#city下,先创建li元素节点,再创建文本节点
            myClick("btn1",function(){
                var li = document.createElement("li");
                var gzText = document.createTextNode("广州");
                li.appendChild(gzText);//新创建的li中添加广州文本节点,内存中
                var city = document.getElementById("city");
                city.appendChild(li);//将新创建的节点加到#city下以在页面中显示
            });
            //将"广州"节点插入到#bj前面
            myClick("btn2",function(){
                var li = document.createElement("li");
                var gzText = document.createTextNode("广州");
                li.appendChild(gzText);
                var bj = document.getElementById("bj");
                var city = document.getElementById("city");//获取父节点#city
                city.insertBefore(li, bj);
            });
            //使用"广州"节点替换#bj节点
            myClick("btn3",function(){
                var li = document.createElement("li");
                var gzText = document.createTextNode("广州");
                li.appendChild(gzText);
                var bj = document.getElementById("bj");
                var city = document.getElementById("city");//获取父节点#city
                city.replaceChild(li, bj);

            });
            //删除#bj节点
            myClick("btn4",function(){
                var bj = document.getElementById("bj");
                var city = document.getElementById("city");//获取父节点#city
                // city.removeChild(bj);
                bj.parentNode.removeChild(bj);
            });
            //读取#city内的HTML代码
            myClick("btn5",function(){
                var city = document.getElementById("city");
                alert(city.innerHTML);
            });
            //设置#bj内的HTML代码
            myClick("btn6",function(){
                var bj = document.getElementById("bj");
                bj.innerHTML = "杭州";
            });
            //使用innerHTML与方法相结合方式
            myClick("btn7",function(){
                var city = document.getElementById("city");
                var li = document.createElement("li");
                li.innerHTML = "广州";
                city.appendChild(li);
            });
        };

        function myClick(idStr,fun){
            var btn = document.getElementById(idStr);
            btn.onclick = fun;
        };
    </script>
</head>
<body>
    你最喜欢那个城市:
    <ul id="city">
        <li id="bj">北京</li>
        <li>上海</li>
        <li>深圳</li>
        <li>四川</li>
    </ul>
    <div id="btnlist">
        <div><button id="btn1">创建一个"广州"节点,添加到#city下</button></div>
        <div><button id="btn2">将"广州"节点插入到#bj前面</button></div>
        <div><button id="btn3">使用"广州"节点替换#bj节点</button></div>
        <div><button id="btn4">删除#bj节点</button></div>
        <div><button id="btn5">读取#city内的HTML代码</button></div>
        <div><button id="btn6">设置#bj内的HTML代码</button></div>
        <div><button id="btn7">创建一个"广州"节点,添加到#city下</button></div>
    </div>
</body>
</html>

在这里插入图片描述

96. DOM删除

l练习:对员工数据进行增删改查操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #employeeTable, tr, td{
            border: 1px black solid;
            border-collapse: collapse;
            margin-bottom: 50px;
            text-align: center;
        }
        #formDiv{
            width: 276px;
            border: 1px black solid;
            text-align: center;
        }
        #formDiv table{
            margin-left: 15px;
        }
        #employeeTable tr:first-child{
            font-weight: bold;
        }
    </style>
    <script>
        window.onload = function(){
            //获取所有超链接
            var allA = document.getElementsByTagName("a");
            for(var i=0;i<allA.length;i++){
                allA[i].onclick = function(){
                    var tr = this.parentNode.parentNode;
                    var name = tr.children[0].innerHTML;
                    var flag = confirm("确认删除"+name+"吗?");
                    if(flag){
                        tr.parentNode.removeChild(tr);
                    }
                    return false;//取消点击超链接跳转页面的默认行为
                };
            }
        };
    </script>
</head>
<body>
    <div>
        <table id="employeeTable">
            <tr>
                <td>name</td>
                <td>Email</td>
                <td>Salary</td>
                <td>&nbsp;</td>
            </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@soho.com</td>
                <td>8000</td>
                <td><a href="deleteEmp?id002">Delete</a></td>
            </tr>
        </table>
    </div>
    <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>
</body>
</html>

在这里插入图片描述

97. DOM添加

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #employeeTable, tr, td{
            border: 1px black solid;
            border-collapse: collapse;
            margin-bottom: 50px;
            text-align: center;
        }
        #formDiv{
            width: 276px;
            border: 1px black solid;
            text-align: center;
        }
        #formDiv table{
            margin-left: 15px;
        }
        #employeeTable tr:first-child{
            font-weight: bold;
        }
    </style>
    <script>
        function dela()
        {
            var tr = this.parentNode.parentNode;
            var name = tr.children[0].innerHTML;
            var flag = confirm("确认删除"+name+"吗?");
            if(flag){
                tr.parentNode.removeChild(tr);
            }
            return false;//取消点击超链接跳转页面的默认行为
        };

        window.onload = function(){
            //删除员工
            var allA = document.getElementsByTagName("a");
            for(var i=0;i<allA.length;i++){
                allA[i].onclick = dela;
            }

            //添加员工
            var addEmpButton = document.getElementById("addEmpButton");
            addEmpButton.onclick = function(){
                var name = document.getElementById("empName").value;
                var email = document.getElementById("email").value;
                var salary = document.getElementById("salary").value;

                var tr = document.createElement("tr");
                var nameTd = document.createElement("td");
                var emailTd = document.createElement("td");
                var salaryTd = document.createElement("td");
                var aTd = document.createElement("td");
                var a = document.createElement("a");

                var nameText = document.createTextNode(name);
                var emailText = document.createTextNode(email);
                var salaryText = document.createTextNode(salary);
                var delText = document.createTextNode("Delete");

                nameTd.appendChild(nameText);
                emailTd.appendChild(emailText);
                salaryTd.appendChild(salaryText);
                a.appendChild(delText);
                aTd.appendChild(a);

                tr.appendChild(nameTd);
                tr.appendChild(emailTd);
                tr.appendChild(salaryTd);
                tr.appendChild(aTd);
                a.href = "javascript:;"

                //重新为新添加的a绑定单击响应事件
                a.onclick = dela;

                //获取tbody,在tbody里面添加tr
                var tbody = employeeTable.getElementsByTagName("tbody")[0];
                tbody.appendChild(tr);

            };
        };
    </script>
</head>
<body>
    <div>
        <table id="employeeTable">
            <tr>
                <td>name</td>
                <td>Email</td>
                <td>Salary</td>
                <td>&nbsp;</td>
            </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@soho.com</td>
                <td>8000</td>
                <td><a href="deleteEmp?id002">Delete</a></td>
            </tr>
        </table>
    </div>
    <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>
</body>
</html>

在这里插入图片描述

98. DOM添加修改

可以使用innerHTML属性来简化添加节点的步骤,对比97. DOM添加

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #employeeTable, tr, td{
            border: 1px black solid;
            border-collapse: collapse;
            margin-bottom: 50px;
            text-align: center;
        }
        #formDiv{
            width: 276px;
            border: 1px black solid;
            text-align: center;
        }
        #formDiv table{
            margin-left: 15px;
        }
        #employeeTable tr:first-child{
            font-weight: bold;
        }
    </style>
    <script>
        function dela()
        {
            var tr = this.parentNode.parentNode;
            var name = tr.children[0].innerHTML;
            var flag = confirm("确认删除"+name+"吗?");
            if(flag){
                tr.parentNode.removeChild(tr);
            }
            return false;//取消点击超链接跳转页面的默认行为
        };

        window.onload = function(){
            //删除员工
            var allA = document.getElementsByTagName("a");
            for(var i=0;i<allA.length;i++){
                allA[i].onclick = dela;
            }

            //添加员工
            var addEmpButton = document.getElementById("addEmpButton");
            addEmpButton.onclick = function(){
                var name = document.getElementById("empName").value;
                var email = document.getElementById("email").value;
                var salary = document.getElementById("salary").value;

                var tr = document.createElement("tr");
                
                tr.innerHTML = "<td>"+name+"</td>"+
                               "<td>"+email+"</td>"+
                               "<td>"+salary+"</td>"+
                               "<td><a href='javascript:;'>Delete</a></td>";

                //重新为新添加的a绑定单击响应事件
                var a = tr.getElementsByTagName("a")[0];
                a.onclick = dela;

                //获取tbody,在tbody里面添加tr
                var tbody = employeeTable.getElementsByTagName("tbody")[0];
                tbody.appendChild(tr);

            };
        };
    </script>
</head>
<body>
    <div>
        <table id="employeeTable">
            <tr>
                <td>name</td>
                <td>Email</td>
                <td>Salary</td>
                <td>&nbsp;</td>
            </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@soho.com</td>
                <td>8000</td>
                <td><a href="deleteEmp?id002">Delete</a></td>
            </tr>
        </table>
    </div>
    <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>
</body>
</html>

在这里插入图片描述

99. a的索引问题

注意96. DOM删除中,for循环会在页面加载完成后立即执行,而响应函数会在超链接被点击时才执行,当响应函数执行时,for循环早已执行完毕

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #employeeTable, tr, td{
            border: 1px black solid;
            border-collapse: collapse;
            margin-bottom: 50px;
            text-align: center;
        }
        #formDiv{
            width: 276px;
            border: 1px black solid;
            text-align: center;
        }
        #formDiv table{
            margin-left: 15px;
        }
        #employeeTable tr:first-child{
            font-weight: bold;
        }
    </style>
    <script>
        window.onload = function(){
            //获取所有超链接
            var allA = document.getElementsByTagName("a");
            for(var i=0;i<allA.length;i++){
                console.log("for循环正在执行"+i);
                allA[i].onclick = function(){
                    console.log("响应函数正在执行"+i);
                    var tr = this.parentNode.parentNode;
                    var name = tr.children[0].innerHTML;
                    var flag = confirm("确认删除"+name+"吗?");
                    if(flag){
                        tr.parentNode.removeChild(tr);
                    }
                    return false;//取消点击超链接跳转页面的默认行为
                };
            }
        };
    </script>
</head>
<body>
    <div>
        <table id="employeeTable">
            <tr>
                <td>name</td>
                <td>Email</td>
                <td>Salary</td>
                <td>&nbsp;</td>
            </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@soho.com</td>
                <td>8000</td>
                <td><a href="deleteEmp?id=002">Delete</a></td>
            </tr>
        </table>
    </div>
    <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>
</body>
</html>

在这里插入图片描述

for循环已执行完毕,只有点击Delete时,才会执行单击响应函数,此时i已超出数组长度

在这里插入图片描述



下一章节将对DOM操作样式和事件进行深入了解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值