<style>
        *{
            margin: 0;
            padding:0;
        }
        ul,ol,li{
            list-style: none;
        }
        .cont{
            width: 800px;
            height: 600px;
            border: 5px solid #000;
            margin: 30px auto;
            display: flex;
            flex-direction: column;
        }
        .cont>ul{
            width: 100%;
            height: 60px;
            display: flex;
        }
        .cont>ul>li{
            flex:1;
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 40px;
            color: #fff;
            background: skyblue;
        }
        .cont>ul>li.active{
            background: blue;
        }
        .cont>ul>li:nth-child(2){
            border-left:5px solid #000 ;
            border-right:5px solid #000 ;
        }
        .cont>ol{
            flex:1;
            position: relative;
        }
        .cont>ol>li{
            width: 100%;
            height: 100%;
            position: absolute;
            top:0;
            left:0;
            color: #000;
            font-size: 150px;
            display: flex;
            justify-content: center;
            align-items: center;
            display: none;
        }
        .cont>ol>li:nth-child(1){
            background: orange;
        }
        .cont>ol>li:nth-child(2){
            background: pink;
        }
        .cont>ol>li:nth-child(3){
            background: green;
        }
        .cont>ol>li.active{
            display: flex;
        }
    </style>
</head>
<body>
    <div class="cont">
        <ul>
            <li class="active">1</li>
            <li>2</li>
            <li>3</li>
        </ul>
        <ol>
            <li class="active">内容1</li>
            <li >内容2</li>
            <li >内容3</li>
        </ol>
    </div>
    <script>
        // tab切换 / 选项卡菜单
        // 思路
        // 点击 ul>li 给 ol>li 设定 class样式
        // 点击 ul>li 
        //     1,给所有的 ul>li 清除样式,给当前点击的li,添加样式
        //     2,给所有的 ol>li 清除样式,给当前点击的ul>li,对应的ol>li添加样式
        // 关键原理:
        //     ul>li  和 ol>li 标签数量是完全相同的
        //     存储标签的伪数组  oUlLis  和  oOlLis 索引下标是完全相同的
        //     两个 伪数组 索引是一一对应的,可以相互通用
        var oUlLis = document.querySelectorAll('ul>li');
        var oOlLis = document.querySelectorAll('ol>li');
        console.log(oUlLis , oOlLis);
        // 循环遍历, ul>li 的伪数组 
        // item 存储的是 ul>li 标签   key 是标签对应的索引下标
        oUlLis.forEach(function(item,key){
            // 添加点击事件,点击标签,触发程序,给点击的标签,添加className的属性值
            // 给 ul>li标签 添加点击事件
            item.addEventListener('click' , function(){
                // 点击标签时,清除所有标签的class样式
                // 给所有的li标签都定义 className属性值 为 '' 空字符串
                
                // 执行 循环,遍历所有的ul>li标签
                oUlLis.forEach(function(i,k){
                    // 给li标签,清除class样式,设定className 为 空字符串
                    i.className = '';
                    // 使用 ul>li的索引下标,也可以调用ol>li的索引下标
                    // 调用 ol>li标签,也清除class样式,设定className 为 空字符串
                    oOlLis[k].className = '';
                    // 循环结束 ul>li ol>li 都没有 class样式
                })
                // 给点击的ul>li标签,添加class样式
                item.className = 'active';
                // 通过 item 的索引下标key,找对 ol中对应的li标签
                // 添加class样式
                oOlLis[key].className = 'active';
            })
        })
    </script>

tab切换之循环遍历的更多相关文章

  1. angular 实现tab切换(循环输出tab标题及tab下属内容,非direct,非include)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  2. JavaScript的Tab切换

    在网页设计中经常要用到tab切换,遂整理了一下常用的两种方法. 先看一下示例代码: HTML: <!doctype html> <html lang="en"&g ...

  3. JavaScript学习笔记2之Tab切换

    1.Tab切换简写版1 页面布局如下: <div id="tab"> <h1 id="title"> <span class=&q ...

  4. vue仿淘宝订单状态的tab切换效果

    <div class="navigation">  //这里是通过循环遍历出来的数据,你需要根据index的值来判断你现在点击的是第几个tab栏导航,同时在js中写一个 ...

  5. VUE 实现tab切换页面效果

    一 163邮箱登录tab切换 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  6. Vue如何tab切换高亮最简易方法

    以往我们实现tab切换高亮通常是循环遍历先把所有的字体颜色改变为默认样式,再点亮当前点击的选项,而我们在vue框架中实现tab切换高亮显示并不需要如此,只需要将当前点击选项的index传入给一个变量, ...

  7. 案例(拖拽对话框、高清放大镜、自制滚动条、元素的隐藏方式、表格隔行变色、tab切换效果、字符串拼接、刷新评论)

    一.拖拽对话框 <style> .of{ width: 500px; } #link,#close{ text-decoration: none; margin: 0 10px; font ...

  8. JS---案例:tab切换效果

    案例:tab切换效果 获取所有的li标签 第一件事:把这个a所在的所以兄弟元素的类样式全部移除 (removeAttributes) 第二件事:当前点击的a父级元素li (点击这个a所在的所在元素li ...

  9. jQuery的DOM操作实例(1)——选项卡&&Tab切换

    一.原生JavaScript编写tab切换 二.jQuery编写tab切换 在用jQuery编写选项卡过程中,重要的事搞清楚 .eq() 和 .index() 的使用方法. .eq()是jQuery遍 ...

  10. Tab切换类型

    Tab切换类型 点击Tab 滑过Tab 延迟Tab CSS样式 ; ; list-style:none; font-size:12px;} .notice{width:298px; height:98 ...

随机推荐

  1. Python数据分析 Series 笔记

    002,pandas介绍 003,Series创建 导入Pandas Series 是一种类似于一维数组的对象,由下面两个部分组成: values:一组数据(ndarray类型) index:相关的数 ...

  2. 牛客网-SQL专项训练13

    ①某软件公司正在升级一套水务管理系统.该系统用于县市级供排水企业.供水厂.排水厂中水务数据的管理工作.系统经重新整合后,开发人员决定不再使用一张备份数据表waterinfo001表,需永久删除.选出符 ...

  3. 基于阿里云GPU云服务器的AIACC助力UC搜索业务性能提效380%,每年节省数千万成本

    简介: 用阿里云GPU计算实例来满足UC极致性价比需求 文丨阿里云神龙计算平台AI加速团队 & UC搜索架构部推理引擎团队 导语:作为国产行列里占有率排名第一的移动浏览器,UC浏览器自身承载着 ...

  4. 使用Databricks+Mlflow进行机器学习模型的训练和部署【Databricks 数据洞察公开课】

    简介: 介绍如何使用Databricks和MLflow搭建机器学习生命周期管理平台,实现从数据准备.模型训练.参数和性能指标追踪.以及模型部署的全流程. 作者:李锦桂   阿里云开源大数据平台开发工程 ...

  5. 获国际架构顶会ATC2021最佳论文!Fuxi2.0去中心化的调度架构详解

    简介: 近日,在国际体系架构顶会USENIX ATC2021上,阿里云飞天伏羲团队与香港中文大学合作的一篇论文<Scaling Large Production Clusters with Pa ...

  6. 这款 AI 代码辅助插件真不错,还能帮你发现 bug!

    大家好,我是树哥. 随着 ChatGPT 风靡全球之后,编程界也迎来了许多代码辅助工具,有非常出名的 Github Copilot 工具.今天,树哥给大家介绍一款免费的代码辅助插件,它无需代理上网,直 ...

  7. 一键入门到精通:sd-webui-prompt-all-in-one 项目大揭秘!

    今天向大家推荐一个宝藏项目.在创意无限的AI艺术生成世界中,sd-webui-prompt-all-in-one 项目如一股清流,为广大创作者和开发者带来了前所未有的便捷和灵感.这不仅仅是一个项目,它 ...

  8. ubuntu系统下安装php7.4

    目录 一.下载/更新php源 二.安装php7.4 三.修改配置 3.1 修改www.conf 文件 四.配置域名 五.nginx的配置文件 5.1 sock方式和nginx配合工作 5.2监听900 ...

  9. Pr 的导出视频

    导出视频 https://www.bilibili.com/video/BV1Vt411n7Bb?p=7

  10. Linux中的which whereis locate

    which which会在PATH环境中搜寻可执行文件 whereis Linux会将系统里面所有的文件都搜集到一个数据库文件中,whereis从这个数据库文件里面寻找文件 locate locate ...