当前位置: 首页 > news >正文

js写一个简单的选项卡

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>js选项卡</title>
    <style>
        #tab{width:300px;
            border:3px solid #CCC;
        }
        #tab h3{margin:0px;
        font-size:14px;
        width:60px;
        height:24px;
        line-height:24px;
        float:left;
        text-align:center;
        background-color:#CCC;
        }
        #tab div{clear:both;
        height:100px;
        font-size:14px;
        padding:20px;
        display:none;}
        #tab .active{background-color:#FFF;}
    </style>
    <script type="text/javascript">
    window.onload=function(){
        var oTab=document.getElementById('tab');
        var aH3=oTab.getElementsByTagName('h3');
        var aDiv=oTab.getElementsByTagName('div');

        for(var i=0;i<aH3.length;i++){  //循环历遍onclick事件
           aH3[i].index=i; //aH3[0].index=0 index是自定义属性
           aH3[i].onclick=function(){
              for(var i=0;i<aH3.length;i++){  //循环历遍去掉h3样式和把div隐藏
                 aH3[i].className='';
                 aDiv[i].style.display='none';
              };
              this.className='active';  //当前按钮添加样式
              aDiv[this.index].style.display='block';  //div显示 this.index是当前div 即div[0]之类的
           };
        };
      };
</script>
</head>
<body>
    <div id="tab">
        <h3>Tab1</h3>
        <h3>Tab2</h3>
        <h3>Tab3</h3>
        <div style="display:block">Tab1</div>
        <div>Tab2</2iv>
        <div>Tab3</div>
    </div>
</body>
</html>

相关文章:

  • 12.cmake安装mysql5.5.56 多实例
  • RPi 2B apache2 mysql php5 and vsftp
  • 在windows上安装Git nvmw以及Node
  • MathType插入空格
  • java8特性深入解读文章合集
  • 字典的基本概念和常用方法
  • WebService-06-CXF与Spring集成
  • 浏览器history操作实现一些功能
  • SVM挑战SVC 存储虚拟化市场的博弈
  • 专访英特尔(中国)开源技术中心:HTML5要如何达到原生性能
  • IOS9中出现的错误
  • Linux下获取帮助
  • IC卡和RFID卡的区别(网上说的都不准确)
  • Effective C++ 条款26
  • 文件上传利器JQuery上传插件Uploadify
  • php的引用
  • ➹使用webpack配置多页面应用(MPA)
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • C++类的相互关联
  • canvas 绘制双线技巧
  • css属性的继承、初识值、计算值、当前值、应用值
  • HTTP中的ETag在移动客户端的应用
  • JavaScript函数式编程(一)
  • session共享问题解决方案
  • 初识 beanstalkd
  • 从tcpdump抓包看TCP/IP协议
  • 分布式任务队列Celery
  • 分布式事物理论与实践
  • 看域名解析域名安全对SEO的影响
  • 马上搞懂 GeoJSON
  • 前端学习笔记之观察者模式
  • 详解移动APP与web APP的区别
  • ​linux启动进程的方式
  • ![CDATA[ ]] 是什么东东
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • $.each()与$(selector).each()
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • %check_box% in rails :coditions={:has_many , :through}
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (多级缓存)多级缓存
  • (二)JAVA使用POI操作excel
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (剑指Offer)面试题34:丑数
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转载)深入super,看Python如何解决钻石继承难题
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net 受管制代码
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • /run/containerd/containerd.sock connect: connection refused