04作业.html 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>用户列表</title>
  6. </head>
  7. <style>
  8. table,tr, td, th{
  9. border: 1px solid black;
  10. }
  11. </style>
  12. <body>
  13. <!-- 序号 姓名 密码 学校 性别 地址 电话 学生表 -->
  14. <h1>用户列表</h1>
  15. <table cellspacing="0px" cellpadding="0px">
  16. <tr>
  17. <th>序号</th>
  18. <th>姓名</th>
  19. <th>密码</th>
  20. <th>学校</th>
  21. <th>性别</th>
  22. <th>地址</th>
  23. <th>电话</th>
  24. <th>操作</th>
  25. </tr>
  26. <tr>
  27. <td class="number">1</td>
  28. <td>张三</td>
  29. <td>123123</td>
  30. <td>黑龙江大学</td>
  31. <td>男</td>
  32. <td>北京</td>
  33. <td>15555555555</td>
  34. <td>
  35. <a href="#" class="del" onclick="del(this)" >删除</a>
  36. <a href="#" class="edit" >修改</a>
  37. </td>
  38. </tr>
  39. </table>
  40. <hr>
  41. <table border="1px">
  42. <thead><h1>用户信息</h1></thead>
  43. <tbody>
  44. <tr>
  45. <td>用户名:</td>
  46. <td><input type="text" name="username" placeholder="请输入用户名" ></td>
  47. </tr>
  48. <tr>
  49. <td>密码:</td>
  50. <td><input type="password" name="password" placeholder="请输入面膜" ></td>
  51. </tr>
  52. <tr>
  53. <td>性别:</td>
  54. <td>
  55. <input type="radio" name="sex" value="0" >女
  56. <input type="radio" name="sex" value="1" checked >男
  57. </td>
  58. </tr>
  59. <tr>
  60. <td>学校:</td>
  61. <td>
  62. <select name="school" id="school" >
  63. <option value="1">---请选择---</option>
  64. <option value="2">---黑大---</option>
  65. <option value="3">---理工---</option>
  66. <option value="4">---黑工程---</option>
  67. </select>
  68. </td>
  69. </tr>
  70. <tr>
  71. <td>地址:</td>
  72. <td><input type="text" name="address" placeholder="请输入地址" ></td>
  73. </tr>
  74. <tr>
  75. <td>电话:</td>
  76. <td><input type="tel" name="phone" placeholder="请输入电话" ></td>
  77. </tr>
  78. <tr>
  79. <td colspan="2">
  80. <button id="btn" type="submit" >添加</button>
  81. <button id="btnEdit" type="submit" >确认修改</button>
  82. </td>
  83. </tr>
  84. </tbody>
  85. </table>
  86. </body>
  87. </html>
  88. <script>
  89. //获取value值信息
  90. function addUser(){
  91. //获取用户名
  92. let username = document.getElementsByName("username")[0].value;
  93. let password = document.getElementsByName("password")[0].value;
  94. //console.log(username)
  95. let sex = document.getElementsByName("sex");
  96. let sexElement = "";
  97. for (let i = 0; i < sex.length ; i++) {
  98. if (sex[i].checked){
  99. sexElement = sex[i].value == 0 ? "女" : "男";
  100. }
  101. }
  102. //console.log(sexElement)
  103. //获取学校
  104. //school
  105. let school = document.getElementById("school");
  106. //console.log(school.value)
  107. /*
  108. <option value="1">---请选择---</option>
  109. <option value="2">---黑大---</option>
  110. <option value="3">---理工---</option>
  111. <option value="4">---黑工程---</option>
  112. */
  113. let schoolName = "";
  114. if (school.value=="1"){
  115. alert("请选择学校")
  116. return;
  117. }else if(school.value=="2"){
  118. schoolName = "黑大"
  119. }else if(school.value=="3"){
  120. schoolName = "理工"
  121. }else if(school.value=="4"){
  122. schoolName = "黑工程"
  123. }
  124. let address = document.getElementsByName("address")[0].value;
  125. let phone = document.getElementsByName("phone")[0].value;
  126. //拼接 innerHtml
  127. let tableElement = document.getElementsByTagName("table")[0];
  128. let length = tableElement.children.length;
  129. //console.log(length)
  130. //"+(length+1)+"
  131. let trStr = "<tr>\n" +
  132. " <td class=\"number\" >"+(length+1)+"</td>\n" +
  133. " <td>"+username+"</td>\n" +
  134. " <td>"+password+"</td>\n" +
  135. " <td>"+schoolName+"</td>\n" +
  136. " <td>"+sexElement+"</td>\n" +
  137. " <td>"+address+"</td>\n" +
  138. " <td>"+phone+"</td>\n" +
  139. " <td>\n" +
  140. " <a href=\"#\" class=\"del\" onclick=\"del(this)\" >删除</a>\n" +
  141. " <a href=\"#\" class=\"edit\" >修改</a>\n" +
  142. " </td>\n" +
  143. " </tr>";
  144. //table添加
  145. tableElement.innerHTML += trStr;
  146. //添加事件
  147. addOnClickEvent();
  148. }
  149. document.getElementById("btn").onclick = addUser;
  150. /*
  151. 删除
  152. */
  153. function del(t){
  154. //获取父元素
  155. //t.parentElement.parentElement.remove();
  156. }
  157. /*
  158. 添加之后 清空添加列表
  159. */
  160. /*
  161. 修改操作
  162. 回显 td内容 innerText 文本
  163. 难点:
  164. 单选和多选的回显
  165. 替换
  166. 后者先删除 后添加方式
  167. */
  168. /*
  169. 添加点击事件
  170. */
  171. function addOnClickEvent(){
  172. let dels = document.getElementsByClassName("del");
  173. for (let i = 0; i < dels.length ; i++) {
  174. dels[i].onclick = delThis;
  175. }
  176. let edit = document.getElementsByClassName("edit");
  177. for (let i = 0; i < edit.length ; i++) {
  178. edit[i].onclick = editThis;
  179. }
  180. }
  181. /*
  182. 删除
  183. */
  184. function delThis(){
  185. this.parentElement.parentElement.remove();
  186. console.log(this)
  187. }
  188. //修改序号标识
  189. let editNumber = 0;
  190. /*
  191. 修改回显
  192. */
  193. function editThis(){
  194. //console.log(this)
  195. //获取tr
  196. let tr = this.parentElement.parentElement;
  197. let td1 = tr.children[0].innerText;
  198. editNumber = td1;
  199. let td2 = tr.children[1].innerText;
  200. let td3 = tr.children[2].innerText;
  201. let td4 = tr.children[3].innerText;
  202. let td5 = tr.children[4].innerText;
  203. let td6 = tr.children[5].innerText;
  204. let td7 = tr.children[6].innerText;
  205. //回显
  206. document.getElementsByName("username")[0].value = td2;
  207. document.getElementsByName("password")[0].value = td3 ;
  208. //回显学校信息
  209. let school = document.getElementById("school");
  210. let schoolNumber = "";
  211. if (td4=="黑大"){
  212. schoolNumber="2"
  213. }else if(td4=="理工"){
  214. schoolNumber = "3"
  215. }else if(td4=="黑工程"){
  216. schoolNumber = "4"
  217. }else{
  218. schoolNumber = "1"
  219. }
  220. //获取
  221. for (let i = 0; i < school.children.length; i++) {
  222. if (school[i].value == schoolNumber){
  223. school[i].selected = true;
  224. }
  225. }
  226. //回显性别信息
  227. let sex = document.getElementsByName("sex");
  228. let sexElement = "";
  229. //男是1 女是0
  230. let s = td5 == "男" ? "1" : "0";
  231. console.log(s)
  232. for (let i = 0; i < sex.length ; i++) {
  233. if (sex[i].value == s){
  234. sex[i].checked = true;
  235. }
  236. }
  237. document.getElementsByName("address")[0].value = td6;
  238. document.getElementsByName("phone")[0].value = td7;
  239. }
  240. //修改保存
  241. function editSave(){
  242. let td1s = document.getElementsByClassName("number");
  243. for (let i = 0; i < td1s.length; i++) {
  244. if (td1s[i].innerText == editNumber){
  245. //构建新tr 替换td1s[i]
  246. let tr = buildTr()
  247. let old = td1s[i].parentElement;
  248. let parent = td1s[i].parentElement.parentElement;
  249. console.log(tr)
  250. console.log(old)
  251. parent.replaceChild(tr,old)
  252. }
  253. }
  254. }
  255. document.getElementById("btnEdit").onclick = editSave;
  256. function buildTr(){
  257. //获取用户名
  258. let username = document.getElementsByName("username")[0].value;
  259. let password = document.getElementsByName("password")[0].value;
  260. let sex = document.getElementsByName("sex");
  261. let sexElement = "";
  262. for (let i = 0; i < sex.length ; i++) {
  263. if (sex[i].checked){
  264. sexElement = sex[i].value == 0 ? "女" : "男";
  265. }
  266. }
  267. //获取学校
  268. let school = document.getElementById("school");
  269. let schoolName = "";
  270. if (school.value=="1"){
  271. alert("请选择学校")
  272. return;
  273. }else if(school.value=="2"){
  274. schoolName = "黑大"
  275. }else if(school.value=="3"){
  276. schoolName = "理工"
  277. }else if(school.value=="4"){
  278. schoolName = "黑工程"
  279. }
  280. let address = document.getElementsByName("address")[0].value;
  281. let phone = document.getElementsByName("phone")[0].value;
  282. //构建tr
  283. let tr = document.createElement("tr");
  284. tr.innerHTML = " <td class=\"number\" >"+(editNumber)+"</td>\n" +
  285. " <td>"+username+"</td>\n" +
  286. " <td>"+password+"</td>\n" +
  287. " <td>"+schoolName+"</td>\n" +
  288. " <td>"+sexElement+"</td>\n" +
  289. " <td>"+address+"</td>\n" +
  290. " <td>"+phone+"</td>\n" +
  291. " <td>\n" +
  292. " <a href=\"#\" class=\"del\" onclick=\"del(this)\" >删除</a>\n" +
  293. " <a href=\"#\" class=\"edit\" >修改</a>\n" +
  294. " </td>\n" ;
  295. return tr;
  296. }
  297. //调用
  298. addOnClickEvent()
  299. </script>