原生js选项卡

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>选项卡</title>
        <style type="text/css">
            input{
                width:80px;
                line-height:30px;
                color:#fff;
                font-weight: 600;
                border:none;
                background: yellowgreen;
            }
            .active{
                background: skyblue;
            }
            div{
                width:300px;
                height:220px;
                background:deepskyblue;
                display: none;
            }
            .checked{
                display: block;
            }
        </style>
    </head>
    <body>
        <input type="button" class="active"value="AAA" data-ind="0"/>
        <input type="button" value="BBB"  data-ind="1"/>
        <input type="button" value="CCC"  data-ind="2"/>
        <div class="checked">
            aaa
        </div>
        <div>bbb</div>
        <div>ccc</div>
        <script type="text/javascript">


            //方法一:
            /*var oBtns = document.getElementsByTagName("input"),
                oDivs = document.getElementsByTagName("div"),
                len = oBtns.length,i = 0,btn = null;
            for(;i < len;i++){
                btn = oBtns[i];
                btn.ind = i;
                btn.onclick = function(){
                    var ind = this.ind,j = 0;
                    //排他思想,清空所有,留下当前
                    for(;j < len;j++){
                        oBtns[j].className = "";
                        oDivs[j].className = "";
                    }
                    oBtns[ind].className = "active";
                    oDivs[ind].className = "checked";
                }
            }*/


            //方法二:委托(代理) 不能自动获取下标,需要自定义属性
            /*document.body.onclick = function(evt){
                var oBtns = document.getElementsByTagName("input"),
                    oDivs = document.getElementsByTagName("div"),e,target;
                    e = evt || window.event;
                    target = e.target || e.srcElement;
                if(target.nodeName.toUpperCase() == "INPUT"){
                    var ind = target.getAttribute("data-ind");
                    console.log(ind);
                    //排他
                    for(var j = 0,len = oBtns.length;j < len;j++){
                        oBtns[j].className = "";
                        oDivs[j].className = "";
                    }
                    oBtns[ind].className = "active";
                    oDivs[ind].className = "checked";
                }
            }*/


            //方法三:ES6
            /*var oBtns = Array.from(document.getElementsByTagName("input")),
                oDivs = Array.from(document.getElementsByTagName("div"));
                len = oBtns.length;
                oBtns.forEach( (btn,ind)=>{
                    btn.onclick = ()=>{
                        for(var j = 0;j < len;j++){
                            oBtns[j].className = "";
                            oDivs[j].className = "";
                        }
                        oBtns[ind].className = "active";
                        oDivs[ind].className = "checked";
                    }
                })*/


            //方法四:let
            /*var oBtns = Array.from(document.getElementsByTagName("input")),
                oDivs = Array.from(document.getElementsByTagName("div"));
                len = oBtns.length;
                for(let i = 0;i < len;i++){
                    oBtns[i].onclick = ()=>{
                        for(var j = 0;j < len;j++){
                            oBtns[j].className = "";
                            oDivs[j].className = "";
                        }
                        oBtns[i].className = "active";
                        oDivs[i].className = "checked";
                    }
                }*/


            //方法五:闭包1
            /*var oBtns = Array.from(document.getElementsByTagName("input")),
                oDivs = Array.from(document.getElementsByTagName("div"));
                len = oBtns.length;
                for(var i = 0;i < len;i++){
                    oBtns[i].onclick = (function(ind){
                        return function(){
                            for(var j = 0;j < len;j++){
                                oBtns[j].className = "";
                                oDivs[j].className = "";
                            }
                            oBtns[ind].className = "active";
                            oDivs[ind].className = "checked";
                        }
                    })(i)
                }*/


            //方法六:闭包2
            /*var oBtns = Array.from(document.getElementsByTagName("input")),
                oDivs = Array.from(document.getElementsByTagName("div"));
                len = oBtns.length;
                for(var i = 0;i < len;i++){
                    (function(ind){
                        oBtns[i].onclick = function(){ //这里写i或者ind都行
                            for(var j = 0;j < len;j++){
                                oBtns[j].className = "";
                                oDivs[j].className = "";
                            }
                            oBtns[ind].className = "active";
                            oDivs[ind].className = "checked";
                        }
                    })(i);
                }*/


            //方法七:    jQ
            //结构:div#tab ul>li  ol>li>img
            /*$("#tab ul li").click(function(){
                $(this).addClass("active").siblings().removeClass("active");
                var index = $(this).index
                $(#tab ol li).eq(index).addClass("checked").siblings().removeClass("checked");
            });*/
        </script>


        <div id="div2" class="a b c"></div>
        <script type="text/javascript">
            //拓展  增加类名,删除类名
            div2.classList.add("d");
            div2.classList.remove("b");
        </script>
    </body>
</html>

转载于:https://www.cnblogs.com/lisaShare/p/9000034.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值