首页 > 语言 > JavaScript > 正文

javascript实现可全选、反选及删除表格的方法

2024-05-06 16:20:22
字体:大 中 小
来源:转载
供稿:网友

这篇文章主要介绍了javascript实现可全选、反选及删除表格的方法,实例展示了javascript针对表格全选、反选、删除、隔行变色、删除提示等常用技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了javascript实现可全选、反选及删除表格的方法。分享给大家供大家参考。具体实现方法如下:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <html xmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  6. <title>可以全选反选删除的表格</title> 
  7. <style type="text/css"> 
  8. body,table 
  9. { 
  10. margin:0; 
  11. padding:0; 
  12. font-size:14px; 
  13. }  
  14. table,tr,th,td 
  15. { 
  16. border:1px solid #cdc; 
  17. } 
  18. th 
  19. { 
  20. background-color:green; 
  21. width:100px; 
  22. } 
  23. .oddColor 
  24. { 
  25. background-color:#ccc; 
  26. } 
  27. .evenColor 
  28. { 
  29. background-color:#fcf; 
  30. } 
  31. .overColor 
  32. { 
  33. background-color:#dff; 
  34. } 
  35. </style> 
  36. <script type="text/javascript"> 
  37. //定义嵌套数组 
  38. var datas = [["张三", 30, "南昌"], ["李四", 25, "北京"], ["王五", 20, "郑州"], 
  39. ["赵六", 19, "武汉"], ["李莫", 18, "深圳"], ["罗成", 33, "重庆"], 
  40. ["王平", 31, "天津"], ["刘萍", 22, "上海"], ["杨丽", 17, "石家庄"], 
  41. ["郭丽", 30, "广州"]]; 
  42. //动态创建表格 
  43. function CreateMyTable() { 
  44. var tblMain = document.getElementById("tblMain"); 
  45. var rowsCount = tblMain.rows.length; 
  46. var addRow; 
  47. var addCol; 
  48. var detailInfos; 
  49. for (var i = 0; i < datas.length; i++) { 
  50. addRow = tblMain.insertRow(rowsCount - 1);//控制数据行添加到倒数第二列 
  51. addCol = addRow.insertCell(-1); 
  52. addCol.innerHTML = "<input type='checkbox' name='item' />"; 
  53. addCol.align = "center"; //控制列居中 
  54. detailInfos = datas[i]; 
  55. for (var j = 0; j < detailInfos.length; j++) { 
  56. addCol = addRow.insertCell(-1); 
  57. addCol.innerHTML = detailInfos[j]; 
  58. } 
  59. addCol = addRow.insertCell(-1); 
  60. addCol.innerHTML = "<input type='button' id='btnDel" + i + "' value='删除' onclick='btnDel(this)' />"; 
  61. addCol.align = "center"; //控制列居中 
  62. rowsCount++; 
  63. } 
  64. TableColor(); 
  65. } 
  66. //设置网格间隔色和高亮显示 
  67. var oldClassName; //记住行的背景色 
  68. function TableColor() { 
  69. var tblMain = document.getElementById("tblMain"); 
  70. var rowNodes = tblMain.rows; 
  71. for (var i = 1; i < rowNodes.length-1; i++) { //除去首行和末行 
  72. if (i % 2 == 0) { 
  73. rowNodes[i].className = "evenColor"; 
  74. } 
  75. else { 
  76. rowNodes[i].className = "oddColor"; 
  77. } 
  78. rowNodes[i].onmouseover = function () { 
  79. oldClassName = this.className; 
  80. this.className = "overColor"; 
  81. } 
  82. rowNodes[i].onmouseout = function () { 
  83. this.className = oldClassName; 
  84. } 
  85. } 
  86. } 
  87. //复选框全选函数 
  88. function checkAll() { 
  89. var currentCheckNode = event.srcElement; 
  90. var checkAllNodes = document.getElementsByName("all"); 
  91. //把没有点击的全选复选框去除复选 
  92. for (var i = 0; i < checkAllNodes.length; i++) { 
  93. if (currentCheckNode != checkAllNodes[i]) { 
  94. checkAllNodes[i].checked = false; 
  95. } 
  96. } 
  97. var checkItemNodes = document.getElementsByName("item"); 
  98. for (var i = 0; i < checkItemNodes.length; i++) { 
  99. checkItemNodes[i].checked = currentCheckNode.checked; 
  100. } 
  101. } 
  102. //按钮选择函数 
  103. function btnCheckboxSel(index) { 
  104. var checkItemNodes = document.getElementsByName("item"); 
  105. for (var i = 0; i < checkItemNodes.length; i++) { 
  106. if (index == 2) { 
  107. checkItemNodes[i].checked = !checkItemNodes[i].checked; 
  108. } 
  109. else { 
  110. checkItemNodes[i].checked = index; 
  111. } 
  112. } 
  113. } 
  114. //每行的删除按钮函数 
  115. function btnDel(btn) { 
  116. var tblMain = document.getElementById("tblMain"); 
  117. var delRowNode = btn.parentNode.parentNode; 
  118. var sMsg = "您是否要删除 姓名为:【" + delRowNode.cells[1].innerText + "】,年龄为:【" + 
  119. delRowNode.cells[2].innerText + "】,城市为:【" + 
  120. delRowNode.cells[3].innerText + "】 的数据?"; 
  121. if (window.confirm(sMsg)) { 
  122. tblMain.tBodies[0].removeChild(delRowNode); 
  123. TableColor(); 
  124. } 
  125. } 
  126. //删除所选项按钮函数 
  127. function btnDelSelectRow() { 
  128. var arrDel = new Array(); 
  129. var pos = 0; 
  130. var itemNodes = document.getElementsByName("item"); 
  131. for (var i = 0; i < itemNodes.length; i++) { 
  132. if (itemNodes[i].checked) { 
  133. arrDel[pos] = itemNodes[i].parentNode.parentNode; 
  134. pos++; 
  135. } 
  136. } 
  137. if (pos <= 0) { 
  138. return; 
  139. } 
  140. if (!window.confirm("是否要删除选择的数据?")) 
  141. return; 
  142. var tblMain = document.getElementById("tblMain"); 
  143. for (var i = 0; i < arrDel.length; i++) { 
  144. tblMain.tBodies[0].removeChild(arrDel[i]); 
  145. } 
  146. } 
  147. window.onload = CreateMyTable; 
  148. </script> 
  149. </head> 
  150. <body> 
  151. <table id="tblMain" cellspacing="0" cellpadding="10px" align="center"> 
  152. <tbody> 
  153. <tr> 
  154. <th><input type="checkbox" name="all" onclick="checkAll()" />全选</th> 
  155. <th>姓名</th> 
  156. <th>年龄</th> 
  157. <th>城市</th> 
  158. <th>操作</th> 
  159. </tr> 
  160. <tr> 
  161. <th><input type="checkbox" name="all" onclick="checkAll()" />全选</th> 
  162. <th colspan="4"> 
  163. <input type="button" value="全选" onclick="btnCheckboxSel(1)" /> 
  164. <input type="button" value="全清" onclick="btnCheckboxSel(0)" /> 
  165. <input type="button" value="反选" onclick="btnCheckboxSel(2)" /> 
  166. <input type="button" value="删除所选项" onclick="btnDelSelectRow()" /> 
  167. </th> 
  168. </tr> 
  169. </tbody>  
  170. </table> 
  171. </body> 
  172. </html> 

希望本文所述对大家的javascript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选