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 相关文章推荐
childNodes.length与children.length的区别
May 14 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
Oct 18 Javascript
JS获取节点的兄弟,父级,子级元素的方法
Jan 09 Javascript
浅谈javascript中字符串String与数组Array
Dec 31 Javascript
jQuery中closest和parents的区别分析
May 07 Javascript
ECMAScript6轮播图实践知识总结
Aug 17 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
Oct 21 Javascript
微信小程序 下拉菜单的实现
Apr 06 Javascript
layui从数据库中获取复选框的值并默认选中方法
Aug 15 Javascript
ES6中字符串的使用方法扩展
Jun 04 Javascript
JavaScript实现省市联动效果
Nov 22 Javascript
JavaScript实现网页下拉菜单效果
Nov 20 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
在PHP中使用与Perl兼容的正则表达式
2006/11/26 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
JavaScript中的集合及效率
2010/01/08 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
详解VueJS应用中管理用户权限
2018/02/02 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
python 从远程服务器下载东西的代码
2013/02/10 Python
Python中的super用法详解
2015/05/28 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
利用python如何在前程无忧高效投递简历
2019/05/07 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
业绩考核岗位职责
2014/02/01 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
毕业自我鉴定怎么写
2014/03/25 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
超市商业计划书
2014/05/04 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
表扬稿范文
2015/01/17 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书