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 相关文章推荐
jQueryUI的Dialog的简单封装
Jun 07 Javascript
使用phantomjs进行网页抓取的实现代码
Sep 29 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
Jun 24 Javascript
使用jQuery在对象中缓存选择器的简单方法
Jun 30 Javascript
angular和BootStrap3实现购物车功能
Jan 25 Javascript
JS日程管理插件FullCalendar简单实例
Feb 07 Javascript
JS打开摄像头并截图上传示例
Feb 18 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
Feb 28 Javascript
3分钟了解vue数据劫持的原理实现
May 01 Javascript
node.js中fs文件系统模块的使用方法实例详解
Feb 13 Javascript
编写一个javascript元循环求值器的方法
Apr 14 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
Nov 19 Vue.js
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
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
ext jquery 简单比较
2010/04/07 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
jQuery命名空间与闭包用法示例
2017/01/12 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
python中的对象拷贝示例 python引用传递
2014/01/23 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Python实现的计算器功能示例
2018/04/26 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
python 构造三维全零数组的方法
2018/11/12 Python
Python流程控制 if else实现解析
2019/09/02 Python
利用python画出AUC曲线的实例
2020/02/28 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
python 操作excel表格的方法
2020/12/05 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
精彩的英文自荐信
2014/01/30 职场文书
竞聘书怎么写,如何写?
2014/03/31 职场文书
百年校庆感言
2015/08/01 职场文书
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript
vue实现拖拽交换位置
2022/04/07 Vue.js