JavaScript综合案例

5.1、案例效果介绍

  • 在“姓名、年龄、性别”三个文本框中填写信息后,添加到“学生信息表”列表(表格)中。

综合案例-添加功能分析.png

5.2、添加功能的分析

  1. 为添加按钮绑定单击事件。
  2. 创建 tr 元素。
  3. 创建 4 个 td 元素。
  4. 将 td 添加到 tr 中。
  5. 获取文本框输入的信息。
  6. 创建 3 个文本元素。
  7. 将文本元素添加到对应的 td 中。
  8. 创建 a 元素。
  9. 将 a 元素添加到对应的 td 中。
  10. 将 tr 添加到 table 中。

5.3、添加功能的实现

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>动态表格</title>
  6. <style>
  7. table{
  8. border: 1px solid;
  9. margin: auto;
  10. width: 500px;
  11. }
  12. td,th{
  13. text-align: center;
  14. border: 1px solid;
  15. }
  16. div{
  17. text-align: center;
  18. margin: 50px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div>
  24. <input type="text" id="name" placeholder="请输入姓名" autocomplete="off">
  25. <input type="text" id="age" placeholder="请输入年龄" autocomplete="off">
  26. <input type="text" id="gender" placeholder="请输入性别" autocomplete="off">
  27. <input type="button" value="添加" id="add">
  28. </div>
  29. <table id="tb">
  30. <caption>学生信息表</caption>
  31. <tr>
  32. <th>姓名</th>
  33. <th>年龄</th>
  34. <th>性别</th>
  35. <th>操作</th>
  36. </tr>
  37. <tr>
  38. <td>张三</td>
  39. <td>23</td>
  40. <td></td>
  41. <td><a href="JavaScript:void(0);" onclick="drop(this)">删除</a></td>
  42. </tr>
  43. <tr>
  44. <td>李四</td>
  45. <td>24</td>
  46. <td></td>
  47. <td><a href="JavaScript:void(0);" onclick="drop(this)">删除</a></td>
  48. </tr>
  49. </table>
  50. </body>
  51. <script>
  52. //一、添加功能
  53. //1.为添加按钮绑定单击事件
  54. document.getElementById("add").onclick = function(){
  55. //2.创建行元素
  56. let tr = document.createElement("tr");
  57. //3.创建4个单元格元素
  58. let nameTd = document.createElement("td");
  59. let ageTd = document.createElement("td");
  60. let genderTd = document.createElement("td");
  61. let deleteTd = document.createElement("td");
  62. //4.将td添加到tr中
  63. tr.appendChild(nameTd);
  64. tr.appendChild(ageTd);
  65. tr.appendChild(genderTd);
  66. tr.appendChild(deleteTd);
  67. //5.获取输入框的文本信息
  68. let name = document.getElementById("name").value;
  69. let age = document.getElementById("age").value;
  70. let gender = document.getElementById("gender").value;
  71. //6.根据获取到的信息创建3个文本元素
  72. let nameText = document.createTextNode(name);
  73. let ageText = document.createTextNode(age);
  74. let genderText = document.createTextNode(gender);
  75. //7.将3个文本元素添加到td中
  76. nameTd.appendChild(nameText);
  77. ageTd.appendChild(ageText);
  78. genderTd.appendChild(genderText);
  79. //8.创建超链接元素和显示的文本以及添加href属性
  80. let a = document.createElement("a");
  81. let aText = document.createTextNode("删除");
  82. a.setAttribute("href","JavaScript:void(0);");
  83. a.setAttribute("onclick","drop(this)");
  84. a.appendChild(aText);
  85. //9.将超链接元素添加到td中
  86. deleteTd.appendChild(a);
  87. //10.获取table元素,将tr添加到table中
  88. let table = document.getElementById("tb");
  89. table.appendChild(tr);
  90. }
  91. </script>
  92. </html>

5.4、删除功能的分析

  • 删除功能介绍

综合案例-删除功能分析.png

  • 删除功能分析
  1. 为每个删除超链接添加单击事件属性。
  2. 定义删除的方法。
  3. 获取 table 元素。
  4. 获取 tr 元素。
  5. 通过 table 删除 tr。

5.5、删除功能的实现

//二、删除的功能
//1.为每个删除超链接标签添加单击事件的属性
//2.定义删除的方法
function drop(obj){
//3.获取table元素
let table = obj.parentElement.parentElement.parentElement;
//4.获取tr元素
let tr = obj.parentElement.parentElement;
//5.通过table删除tr
table.removeChild(tr);
}