JS几种table切换

1.使用className
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>tab</title>
    <style type="text/css">
        * {padding:0; margin:0;}
        button {
            background-color: #ccc;
            width:80px;
            height: 30px;
        }
        .btn-active {
            background-color: yellow;
            font-weight:bold;
            font-size: 14px;
        }
        div{
            width:200px;
            height: 200px;
            font-size: 64px;
            background-color: #0c0;
            display: none;
            color:#fff;
        }
        .div-active {
            display: block;
        }
    </style>
</head>
<body>
    <button class="btn-active">按钮1</button>
    <button>按钮2</button>
    <button>按钮3</button>
    <button>按钮4</button>
    <div class="div-active">1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <script type="text/javascript">
    //1.先获取元素
    var buttonList = document.getElementsByTagName("button");
    var divList = document.getElementsByTagName("div");
    //2.添加事件
    for(var i = 0; i < buttonList.length; i++) {
        buttonList[i].index = i;
        buttonList[i].onclick = function() {
            for(var j = 0; j < buttonList.length;j++) {
                buttonList[j].className = "";
                divList[j].className = "";
            }
            this.className = "btn-active";
            divList[this.index].className = "div-active";
        }
    }
    </script>
</body>
</html>

2.使用className+匿名函数的自执行(html,css样式与1相同)

 <script type="text/javascript">
    //1.先获取元素
    var buttonList = document.getElementsByTagName("button");
    var divList = document.getElementsByTagName("div");
    //2.添加事件
    for(var i = 0; i < buttonList.length; i++) {
        (function(i){ //匿名函数自执行
             buttonList[i].onclick = function() {
                for(var j = 0; j < buttonList.length;j++) {
                    buttonList[j].className = "";
                    divList[j].className = "";
                }
                this.className = "btn-active";
                divList[i].className = "div-active";
            }
        })(i)
    }
    </script>

3.自定义index为当前点击

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>tab切换</title>
    <style type="text/css">
        button {
            width:120px;
            height: 32px;
            line-height: 32px;
            background-color: #ccc;
            font-size: 24px;
        }
        div {
            display: none;
            width:200px;
            height: 200px;
            font-size: 72px;
            color:#ddd;
            background-color: green;
            border:1px solid black;
        }
    </style>
</head>
<body>
    <button style="background-color: yellow;">1</button>
    <button>2</button>
    <button>3</button>
    <button>4</button>
    <div style="display:block;">1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <script type="text/javascript">
    var buttonArr = document.getElementsByTagName("button");
    var divArr = document.getElementsByTagName("div");
    for(var i = 0; i < buttonArr.length;i++) {
        buttonArr[i].index = i;
        // buttonArr[i].setAttribute("index",i);
        buttonArr[i].onclick = function() {
            for(var j = 0; j < buttonArr.length; j++) {
                buttonArr[j].style.backgroundColor = "#ccc";
                buttonArr[this.index].style.backgroundColor = "yellow";
                divArr[j].style.display = "none";
                divArr[this.index].style.display = "block";
            }
        }
    }

    </script>
</body>
</html>

4.使用for循环+if判断当前点击与自定义数组是否匹配(html,css样式与3相同)

<script type="text/javascript">
    //定义数组并获取数组内各个的节点
    var buttonArr = document.getElementsByTagName("button");
    var divArr = document.getElementsByTagName("div");
    for(var i = 0; i < buttonArr.length;i++) {
        buttonArr[i].onclick = function() {
            //this
            // alert(this.innerHTML)
           //for循环遍历button数组长度
            for(var j = 0; j < buttonArr.length; j++) {
                //重置所有的button样式
                buttonArr[j].style.backgroundColor = "#ccc";
                //给当前的(点击的那个)那个button添加样式
                this.style.backgroundColor = "yellow";
                //隐藏所有的div
                divArr[j].style.display = "none";
                //判断当前点击是按钮数组中的哪一个?
                if(this == buttonArr[j]) {
                    // alert(j);
                     //显示点击按钮对应的div
                    divArr[j].style.display = "block";
                }
            }
        }
    }
    </script>

这是初学JS时所使用的方法,现在整理出来,最主要的还是要有自己的想法才是最好的。

时间: 2024-12-25 17:27:51

JS几种table切换的相关文章

table切换

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>自己动手做个简单的jquery版table切换,部分注释</title><meta name="keywords" content="jQuery切换,ta

vue初识 --- table切换

HTML: <div id="box"> <ul> <li v-for="(item,index) in items" v-text="item" @click="clk(index)" @mouseover="clk(index)" @mouseout="clk(0)" class="tab_li"></li> <

JS几种数组遍历方式以及性能分析对比

前言 这一篇与上一篇 JS几种变量交换方式以及性能分析对比 属于同一个系列,本文继续分析JS中几种常用的数组遍历方式以及各自的性能对比 起由 在上一次分析了JS几种常用变量交换方式以及各自性能后,觉得这种方式挺好的,于是抽取了核心逻辑,封装成了模板,打算拓展成一个系列,本文则是系列中的第二篇,JS数组遍历方式的分析对比 JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一

纯CSS完成tab实现5种不同切换对应内容效果

很常用的一款特效纯CSS完成tab实现5种不同切换对应内容效果 实例预览 下载地址 实例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <div class="main">                 <ul class="tabs">                     <li>                  

[转] js实现html table 行,列锁定

js实现html table 表头,指定列锁定 实现效果如下: 感兴趣的朋友可以直接复制出来运行看效果. 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml&

js实现图片自动切换效果。

js实现图片自动切换效果,简单实用,原谅我只是一只小菜鸟还在学大神天天写博文装逼. <script language="javascript"> setInterval(test, 2000); var array = new Array(); var index = 0; var array = new Array("../../Content/images/3s1hj_kqzew4k2ozbhs2dwgfjeg5sckzsew_780x520.jpg"

js实现tab页切换选项卡代码特效

原文:js实现tab页切换选项卡代码特效 源代码下载地址:http://www.zuidaima.com/share/1550463557864448.htm JS 写的tab切换效果

JS几种数组遍历方式以及性能分析对比(转 未经测试,先mark)

前言 这一篇与上一篇 JS几种变量交换方式以及性能分析对比属于同一个系列,本文继续分析JS中几种常用的数组遍历方式以及各自的性能对比 起由 在上一次分析了JS几种常用变量交换方式以及各自性能后,觉得这种方式挺好的,于是抽取了核心逻辑,封装成了模板,打算拓展成一个系列,本文则是系列中的第二篇,JS数组遍历方式的分析对比 JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种

js几种escape()解码与unescape()编码

js几种escape()解码与unescape()编码 www.111cn.net 编辑:kepeer 来源:转载 一篇js几种escape()解码与unescape()编码函数,同时我们也和它和服务器同步了,有需要的朋友可以参考一下哦. 服务器端: Server.UrlEncode()方法对Url进行编码 Server.UrlDecode()方法 对url进行解码 Js方法: escape() 函数可对字符串进行编码: unescape() 函数可对字符串进行解码: 定义和用法 unescap