原生js选项卡

button 行级元素 

三个文本框,div,

一开始,第一个button就加上控制背景色的class,另两个button没有

而 第一个文本框display设置成block  其他两个都是none

为每个button 绑定点击事件,这里要用立即函数(立即函数也是 匿名函数)  否则形成闭包

不然 每个button 绑定不上onclick

当点击时候,利用 for循环,把每一个 button 和 div的类 和 display 置空、设none

(就是把 上一个 效果 移除)

移除用   xx.className=""   脚本化css  .style.display="none"

                        oBtn[j].className="";
                        div[j].style.display="none";

并且利用 this  把当前 button 的类 加上  原理和移除时  相似

                this.className="active";
                div[n].style.display="block";

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .active{
            background-color: yellow;
        }
         /*按钮变色的类*/
        .content{
            width: 200px;
            height: 200px;
            border:1px solid black;    
            display: none;
        }

        /*display:none  有border也看不到*/
    </style>
</head>
<body>
        <button class="active">111</button>
        <button>222</button>
        <button>333</button>
        <div class="content" style="display: block">111</div>
        <div class="content">222</div>
        <div class="content">333</div>    
    <script type="text/javascript">
        //第一步,先画出 那个样子、布局
        //三个 button,外加 三个 div
        //第二步,考虑 实现功能:
        //比如 button点击时要变色
        //第三步,点击那个 按钮 就把 对应的 div 的display值变成 block,点击的 按钮要 变色,并 先把三个 div 和 按钮的效果 全清除
 
        var oBtn=document.getElementsByTagName("button");
        var div=document.getElementsByTagName("div");
        //获得一组,一组三个
        
        //给每个btn绑定点击事件
        for(var i=0; i<oBtn.length; i++){
            (function (n){
                oBtn[n].οnclick=function(){
                    for(var j=0; j<oBtn.length; j++){
                        oBtn[j].className="";
                        div[j].style.display="none";
                    }
                
                this.className="active";
                div[n].style.display="block";
            }
            }(i))
        }

        // 问题:怎么让div框中的 字体居中
        // 怎么点击这个按钮,就对应到相应的 div框
        //
        // 不明白 为什么 绑定的时候 要用立即函数
        // 消除 效果时,不需要

        
        // tips:
        // 和 按钮不同的是,预设 是行间样式 改变 display
    </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值