动态表格(Node和HTML DOM innerHTML完成)

案例:实现一个动态表格:实现添加功能和删除功能

使用Node方式:


 添加

 1.给添加按钮添加点击事件

 2.获取文本框的内容

 3.创建td,td设置td的文体为文本框的内容

 4.创建tr,将td添加成tr的子元素

 5.获取table元素,将tr元素添加成table元素的子元素*


    删除    

 1.确定是那一个超链接

  在a链接上添加一个点击事件调用删除方法,并且给一个参数获取当前的是那一个a标签

 2.删除 通过a标签的父标签tr标签的父标签table 删除当前的tr标签就可以完成这个功能

<!DOCTYPE html>

<html lang="en">

    <meta charset="UTF-8">

    <title>动态表格

        table {

border:1px solid;

            margin:auto;

            width:500px;

        }

td, th {

text-align:center;

            border:1px solid;

        }

div {

text-align:center;

            margin:50px;

        }

    <input type="text" id="id" placeholder="请输入编号">

    <input type="text" id="name" placeholder="请输入姓名">

    <input type="text" id="gender" placeholder="请输入性别">

    <input type="button" value="添加" id="btn_add">

    <caption>学生信息表

        <th>编号

        <th>姓名

        <th>性别

        <th>操作

        <td>1

        <td>令狐冲

        <td>男

        <td><a href="javascript:void(0);" onclick="delTr(this);">删除

        <td>2

        <td>任我行

        <td>男

        <td><a href="javascript:void(0);" onclick="delTr(this);" >删除

        <td>3

        <td>岳不群

        <td>男

        <td><a href="javascript:void(0);" onclick="delTr(this);">删除

        //添加功能

        //1.获取按钮元素

        document.getElementById("btn_add").onclick =function () {

//2.获取文本框中的内容

            var id = document.getElementById("id").value;//获取HTML元素的属性

            var name = document.getElementById("name").value;

            var gender = document.getElementById("gender").value;

            //创建a标签,设置a标签的属性

            var a = document.createElement("a");

            a.setAttribute("href","javascript:void(0);");

            a.setAttribute("onclick","delTr(this);");

            a.innerHTML="删除";

            //2.1将文本框的内容封装到文本节点中,不能直接使用文本

            var id_node = document.createTextNode(id);

            var name_node = document.createTextNode(name);

            var gender_node = document.createTextNode(gender);

            // 3.创建td,td设置td的文体为文本框的内容

            var td_id = document.createElement("td");

            td_id.appendChild(id_node);

            var td_name = document.createElement("td");

            td_name.appendChild(name_node);

            var td_gender = document.createElement("td");

            td_gender.appendChild(gender_node);

            var td_a = document.createElement("td");

            td_a.appendChild(a);

            //4.创建tr,将td添加成tr的子元素

            var tr = document.createElement("tr");

            tr.appendChild(td_id);

            tr.appendChild(td_name);

            tr.appendChild(td_gender);

            tr.appendChild(td_a);

            //5.获取table元素,将tr元素添加成table元素的子元素

            document.getElementsByTagName("table")[0].appendChild(tr);

        }

//删除功能

        function delTr(obj) {

//1.获取table元素

            var table = obj.parentNode.parentNode.parentNode;

            var tr = obj.parentNode.parentNode;

            //删除table下的tr

            table.removeChild(tr);

        }

</html>

2.使用innerHTML的方式实现添加

//使用innerHTML实现添加功能

document.getElementById("btn_add").onclick =function () {

//2.获取文本框中的内容

    var id = document.getElementById("id").value;//获取HTML元素的属性

    var name = document.getElementById("name").value;

    var gender = document.getElementById("gender").value;

    //获取table元素

    var table = document.getElementsByTagName("table")[0];

    table.innerHTML +="<tr>\n" +

"        <td>"+id+"</td>\n" +

"        <td>"+name+"</td>\n" +

"        <td>"+gender+"</td>\n" +

"        <td><a href=\"javascript:void(0);\" onclick=\"delTr(this);\">删除</a></td>\n" +

"    </tr>";

};

就简单很多了

tip:

超链接功能

1,可以被点击

 2,点击后跳转指定的href的url

     我们的需求是 保留1功能,去掉2功能

     方法:在href属性中添加 href="javascript:void(0)";就可以完成指定的需求

     这个方法的实质是:执行了一个js代码void(0);



下一篇  DOM 中的事件

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容