首页 > 语言 > JavaScript > 正文

javascript通过获取html标签属性class实现多选项卡的方法

2024-05-06 16:23:48
字体:
来源:转载
供稿:网友

这篇文章主要介绍了javascript通过获取html标签属性class实现多选项卡的方法,涉及javascript针对页面元素属性与事件的相关操作技巧,需要的朋友可以参考下

本文实例讲述了javascript通过获取html标签属性class实现多选项卡的方法。分享给大家供大家参考。具体实现方法如下:

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <meta charset="utf-8" /> 
  5. <title>原生javascript通过获取html标签属性class实现多选项卡</title> 
  6. <style type="text/css"
  7. .tab { 
  8. clear: both; 
  9. margin: 20px auto; 
  10. padding: 10px; 
  11. width: 680px; 
  12. overflow: hidden; 
  13. .tab .tab-menu { 
  14. margin: 0; 
  15. padding: 0; 
  16. list-style: none; 
  17. .tab .tab-menu li { 
  18. display: inline; 
  19. margin: 0 2px 0 0; 
  20. }  
  21. .tab .tab-menu li a { 
  22. padding: 0 1em; 
  23. text-decoration: none; 
  24. color: #a80; 
  25. background: #fe5; 
  26. .tab .tab-menu li a:hover { 
  27. background: #fc0; 
  28. color: #540; 
  29. .tab .tab-menu .active { 
  30. .tab .tab-menu .active a { 
  31. padding-bottom: 2px; 
  32. font-weight: bold; 
  33. color: black; 
  34. background: #fc0; 
  35. .tab .tab-panel { 
  36. padding: 1em; 
  37. border: 2px solid #fc0; 
  38. background: #fff; 
  39. .tab .tab-panel h2 { 
  40. font-size: 1.5em; 
  41. color: #fc0; 
  42. .tab .tab-none { 
  43. display: none; 
  44. </style> 
  45. <script type="text/javascript">  
  46. function Tab(style, scope){ 
  47. this.oItem = this.getByClass(style, scope); 
  48. this.init(); 
  49. Tab.prototype = { 
  50. init: function(){ 
  51. var that = this, menu, m; 
  52. for(var i = 0, len = this.oItem.length; i < len; i++){ 
  53. menu = this.oItem[i].getElementsByTagName('li'); 
  54. for(var j = 0, mLen = menu.length; j < mLen; j++){ 
  55. m = menu[j]; 
  56. m.index = j; 
  57. m.onmouseover = function(){that.focus(this);} 
  58. }, 
  59. focus: function(o){ 
  60. var par = o.parentNode.parentNode, panel = par.getElementsByTagName('div'),  
  61. btn = par.getElementsByTagName('li'), len = btn.length; 
  62. for(var i = 0; i < len; i++){ 
  63. btn[i].className = ''
  64. panel[i].className = this.changeClass(panel[i].className, 'tab-none'true); 
  65. o.className = 'active'
  66. panel[o.index].className = this.changeClass(panel[o.index].className, 'tab-none'false); 
  67. }, 
  68. changeClass: function(cl, cl2, add){ 
  69. var flag; 
  70. if(cl.match(cl2) != null) flag = true
  71. if(add ^ flag) return flag ? cl.replace(cl2, '') : cl += ' ' + cl2; 
  72. return cl; 
  73. }, 
  74. getByClass: function(cla, obj){ 
  75. var obj = obj || document, arr = []; 
  76. if(document.getElementsByClassName){ 
  77. return document.getElementsByClassName(cla); 
  78. else { 
  79. var all = obj.getElementsByTagName('*'); 
  80. for(var i = 0, len = all.length; i < len; i++){ 
  81. if(all[i].className.match(cla) != null) arr.push(all[i]); 
  82. return arr; 
  83. window.onload = function(){ 
  84. new Tab('tab-menu'null); 
  85. </script> 
  86. </head> 
  87. <body> 
  88. <div class="tab"
  89. <ul class="tab-menu"
  90. <li class="active"><a href="">111</a></li> 
  91. <li><a href="">122</a></li> 
  92. <li><a href="">133</a></li> 
  93. </ul> 
  94. <div class="tab-panel"
  95. 111 
  96. </div> 
  97. <div class="tab-panel tab-none"
  98. 122 
  99. </div> 
  100. <div class="tab-panel tab-none"
  101. 133 
  102. </div> 
  103. </div> 
  104. <div class="tab"
  105. <ul class="tab-menu"
  106. <li class="active"><a href="">211</a></li> 
  107. <li><a href="">222</a></li> 
  108. <li><a href="">233</a></li> 
  109. </ul> 
  110. <div class="tab-panel"
  111. 211 
  112. </div> 
  113. <div class="tab-panel tab-none"
  114. 222 
  115. </div> 
  116. <div class="tab-panel tab-none"
  117. 233 
  118. </div> 
  119. </div> 
  120. <div class="tab"
  121. <ul class="tab-menu"
  122. <li class="active"><a href="">311</a></li> 
  123. <li><a href="">322</a></li> 
  124. <li><a href="">333</a></li> 
  125. </ul> 
  126. <div class="tab-panel"
  127. 311 
  128. </div> 
  129. <div class="tab-panel tab-none"
  130. 322 
  131. </div> 
  132. <div class="tab-panel tab-none"
  133. 333 
  134. </div> 
  135. </div> 
  136. </body> 
  137. </html> 


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

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

图片精选