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


Posted in Javascript onJuly 27, 2015

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

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>原生javascript通过获取html标签属性class实现多选项卡</title>
    <style type="text/css">
      .tab {
        clear: both;
        margin: 20px auto;
        padding: 10px;
        width: 680px;
        overflow: hidden;
      }
      .tab .tab-menu {
        margin: 0;
        padding: 0;
        list-style: none;
      }
      .tab .tab-menu li {
        display: inline;
        margin: 0 2px 0 0;
      }      
      .tab .tab-menu li a {
        padding: 0 1em;
        text-decoration: none;
        color: #a80;
        background: #fe5;
      }
      .tab .tab-menu li a:hover {
        background: #fc0;
        color: #540;
      }
      .tab .tab-menu .active {
      }
      .tab .tab-menu .active a {
        padding-bottom: 2px;
        font-weight: bold;
        color: black;
        background: #fc0;
      }
      .tab .tab-panel {
        padding: 1em;
        border: 2px solid #fc0;
        background: #fff;
      }
      .tab .tab-panel h2 {
        font-size: 1.5em;
        color: #fc0;
      }
      .tab .tab-none {
        display: none;
      }
    </style>
    <script type="text/javascript">      
      function Tab(style, scope){
        this.oItem = this.getByClass(style, scope);
        this.init();
      }
      Tab.prototype = {
        init: function(){
          var that = this, menu, m;
          for(var i = 0, len = this.oItem.length; i < len; i++){
            menu = this.oItem[i].getElementsByTagName('li');
            for(var j = 0, mLen = menu.length; j < mLen; j++){
              m = menu[j];
              m.index = j;
              m.onmouseover = function(){that.focus(this);}
            }
          }
        },
        focus: function(o){
          var par = o.parentNode.parentNode, panel = par.getElementsByTagName('div'), 
            btn = par.getElementsByTagName('li'), len = btn.length;
          for(var i = 0; i < len; i++){
            btn[i].className = '';
            panel[i].className = this.changeClass(panel[i].className, 'tab-none', true);
          }
          o.className = 'active';
          panel[o.index].className = this.changeClass(panel[o.index].className, 'tab-none', false);
        },
        changeClass: function(cl, cl2, add){
          var flag;
          if(cl.match(cl2) != null) flag = true;
          if(add ^ flag) return flag ? cl.replace(cl2, '') : cl += ' ' + cl2;
          return cl;
        },
        getByClass: function(cla, obj){
          var obj = obj || document, arr = [];
          if(document.getElementsByClassName){
            return document.getElementsByClassName(cla);
          } else {
            var all = obj.getElementsByTagName('*');
            for(var i = 0, len = all.length; i < len; i++){
              if(all[i].className.match(cla) != null) arr.push(all[i]);
            }
            return arr;
          }
        }
      }
      window.onload = function(){
        new Tab('tab-menu', null);
      }
    </script>
  </head>
  <body>
    <div class="tab">
      <ul class="tab-menu">
        <li class="active"><a href="">111</a></li>
        <li><a href="">122</a></li>
        <li><a href="">133</a></li>
      </ul>
      <div class="tab-panel">
        111
      </div>
      <div class="tab-panel tab-none">
        122
      </div>
      <div class="tab-panel tab-none">
        133
      </div>
    </div>
    <div class="tab">
      <ul class="tab-menu">
        <li class="active"><a href="">211</a></li>
        <li><a href="">222</a></li>
        <li><a href="">233</a></li>
      </ul>
      <div class="tab-panel">
        211
      </div>
      <div class="tab-panel tab-none">
        222
      </div>
      <div class="tab-panel tab-none">
        233
      </div>
    </div>
    <div class="tab">
      <ul class="tab-menu">
        <li class="active"><a href="">311</a></li>
        <li><a href="">322</a></li>
        <li><a href="">333</a></li>
      </ul>
      <div class="tab-panel">
        311
      </div>
      <div class="tab-panel tab-none">
        322
      </div>
      <div class="tab-panel tab-none">
        333
      </div>
    </div>
  </body>
</html>

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

Javascript 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 Javascript
js判断滚动条是否已到页面最底部或顶部实例
Nov 20 Javascript
AngularJS中的Directive自定义一个表格
Jan 25 Javascript
jQuery前端开发35个小技巧
May 24 Javascript
jQuery EasyUi 验证功能实例解析
Jan 06 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
Jun 03 Javascript
package.json文件配置详解
Jun 15 Javascript
bootstrap精简教程_动力节点Java学院整理
Jul 14 Javascript
Vue响应式原理深入解析及注意事项
Dec 11 Javascript
详解Require.js与Sea.js的区别
Aug 05 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
Apr 10 Javascript
vue.js 解决v-model让select默认选中不生效的问题
Jul 28 Javascript
readonly和disabled属性的区别
Jul 26 #Javascript
javascript实现继承的简单实例
Jul 26 #Javascript
IE10中flexigrid无法显示数据的解决方法
Jul 26 #Javascript
javascript实现将文件保存到本地方法汇总
Jul 26 #Javascript
javascript获取当前的时间戳的方法汇总
Jul 26 #Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
Jul 26 #Javascript
javascript中setTimeout使用指南
Jul 26 #Javascript
You might like
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
Python实例之wxpython中Frame使用方法
2014/06/09 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
Python字典简介以及用法详解
2016/11/15 Python
python中pip的安装与使用教程
2018/08/10 Python
详解Python:面向对象编程
2019/04/10 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
python的help函数如何使用
2020/06/11 Python
HTML5 解析规则分析
2009/08/14 HTML / CSS
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
这段代码难道不该打印出56吗
2013/02/27 面试题
高中自我鉴定范文
2013/11/03 职场文书
服务之星获奖感言
2014/01/21 职场文书
房地产营销策划方案
2014/02/08 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
项目验收申请报告
2015/05/15 职场文书
个人业务学习心得体会
2016/01/25 职场文书
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python
python基础之模块的导入
2021/10/24 Python
方法汇总:Python 安装第三方库常用
2022/04/26 Python