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

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

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

图片精选