zoukankan      html  css  js  c++  java
  • 原生JS 选项卡代码实现

    可实现同页面多个选项卡

    效果图:

    代码实现:

    HTML部分

    <div class="main" id="tabs">
                <div class="tabDiv">
                    <a href="javascript:;" class="on">选项一</a>
                    <a href="javascript:;">选项二</a>
                    <a href="javascript:;">选项三</a>
                </div>
                <div class="con">
                    1111111111111111111111111
                </div>
                <div class="con">
                    2222222222222222222222222
                </div>
                <div class="con">
                    3333333333333333333333333
                </div>
            </div>
            
            <div class="main" id="tabs1">
                <div class="tabDiv">
                    <a href="javascript:;" class="on">选项一</a>
                    <a href="javascript:;">选项二</a>
                    <a href="javascript:;">选项三</a>
                </div>
                <div class="con">
                    1111111111111111111111111
                </div>
                <div class="con">
                    2222222222222222222222222
                </div>
                <div class="con">
                    3333333333333333333333333
                </div>
            </div>
    

     JS代码

    fnTab("tabs");
                fnTab("tabs1");
                
                function fnTab(id){
                    var parentEle = document.getElementById(id);
                    var tabTools = getByClass(parentEle,"tabDiv")[0].getElementsByTagName("a");
                    var conArr = getByClass(parentEle,"con");
                    conArr[0].className += " active";
                    for(var i=0;i<tabTools.length;i++){
                        (function(i){
                            tabTools[i].onclick = function(){
                                for(var j=0;j<conArr.length;j++){
                                    removeClass(tabTools[j],"on");
                                    removeClass(conArr[j],"active");
                                }
                            addClass(tabTools[i],"on");
                            addClass(conArr[i],"active");
                            }
                        })(i);
                        
                    }
                    
                    
                }
    
                function getByClass(oParentEle,sClass){
                    if(oParentEle.getElementsByClassName){
                        var oEles = oParentEle.getElementsByClassName(sClass);
                        return oEles;
                    }else{
                        var oEles = oParentEle.getElementsByTagName("*");
                        var aRes = [];
                        for(var i=0;i<oEles.length;i++){
                            if(oEles[i].className == sClass){
                                aRes.push(oEles[i]);
                            }
                        }
                        return aRes;
                    }
                    
                }
                function addClass(ele,className){
                    if(ele && ele.nodeType == 1){
                        var reg = new RegExp("\b"+className +"\b","g");
                        if(!reg.test(ele.className)){
                            ele.className += " "+className;
                        }
                    }
                    
                }
                function removeClass(ele,className){
                    if(ele && ele.nodeType == 1){
                        var reg = new RegExp("\b"+className +"\b","g");
                    if(reg.test(ele.className)){
                        ele.className = ele.className.replace(reg,"");
                    }
                    }
                    
                }
    
  • 相关阅读:
    Flex AIR应用GPS定位功能(Android和IOS)
    Flex AIR应用拍照功能(Android和IOS版本)
    读取Flex AIR应用程序设置
    查看本机开放的端口号,查看某个端口号是否被占用,查看被占用的端口号被哪个进程所占用,如何结束该进程
    Eclipse设置默认编码为UTF-8
    Eclipse使用教程之精华篇
    hdu 1829 分组并查集
    hdu 1316高精度
    hdu 4287 字典树问题
    hdu 1867 kmp共工前后缀串问题
  • 原文地址:https://www.cnblogs.com/jameslif/p/5069438.html
Copyright © 2011-2022 走看看