zoukankan      html  css  js  c++  java
  • 原生js选项卡

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>选项卡</title>
            <style type="text/css">
                input{
                    80px;
                    line-height:30px;
                    color:#fff;
                    font-weight: 600;
                    border:none;
                    background: yellowgreen;
                }
                .active{
                    background: skyblue;
                }
                div{
                    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>

  • 相关阅读:
    贝塞尔曲线原理(转载)
    无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-|1-1-0.dll
    HDU 3530 Subsequence(单调队列)
    Gym 100247I Meteor Flow(优先队列)
    BZOJ 1040: [ZJOI2008]骑士(基环树dp)
    Gym 100247C Victor's Research(有多少区间之和为S)
    Gym 100247A The Power of the Dark Side
    Gym 100247B Similar Strings(哈希+思维)
    51nod 1405 树的距离之和(dfs)
    51nod 1378 夹克老爷的愤怒(树型dp+贪心)
  • 原文地址:https://www.cnblogs.com/lisaShare/p/9000034.html
Copyright © 2011-2022 走看看