JavaScript及jQuery实现tab标签页切换

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script type="text/javascript" src="js/jquery.min.js"></script>
    </head>
    <body>
    <style>
    .box{
        width: 215px;
        height: 150px;
    }
    .tab{
        width: 215px;
        height: 50px;
    }    
    span{
        float: left;
        height: 50px;
        padding: 0 30px;
        border: 1px solid #333333;
        text-align: center;
        cursor: pointer;
    }
    .content div{
        height: 100px;
        width: 212px;
        border: 1px solid #333333;
    }
    .tab_active{
        background-color: #FF0000;
    }
    .show{
        background-color: #c9c9c9;
        display: block;
    }
    </style>
    <div class="box">
        <div class="tab">
            <span class="tab_active">1</span>
            <span>2</span>
            <span>3</span>
        </div>
        <div class="content">
            <div class="show">content1</div>
            <div class="show" style="display: none;">content2</div>
            <div class="show" style="display: none;">content3</div>
        </div>
    </div>
    <script>
//jquery
//        $(function(){
//            $('span').click(function(){
//                $(this).addClass('tab_active').siblings().removeClass('tab_active');
//                var i = $(this).index();
//                $('.content div').eq(i).css('display','block').addClass('show').siblings().css('display','none');
//            });
//        });

//JavaScript
    var tabs = document.getElementsByTagName('span');
    var contents = document.getElementsByClassName('content')[0];
    var aaa= contents.getElementsByTagName('div');
    for(var i = 0, len1 =tabs.length; i<len1; i++){
        tabs[i].index = i;
        tabs[i].onclick = function(){
            for(var j = 0; j < tabs.length; j++){
                tabs[j].className = "";
                aaa[j].style.display = "none";
            }
            tabs[this.index].className = "tab_active";
            aaa[this.index].style.display = "block";
        }
    }
    
    </script>
    </body>
</html>

JavaScript中第二行获取ClassName时得到的是一个list,无论拥有这个class的元素是一个还是多个,均会是一个list,而在接下来获取contents的子元素时,js不知道获取的list中的哪个,所以需要在获取到classname为“content”的元素时加了[0]。所以最好使用id来标记元素,那样不需考虑获取的元素是不是list。

jQuery在使用中能极大的减少代码量,但是需要理解var i = $(this).index();这句代码,它的作用是获取被点击的标签的索引值,这个索引值先保存到i中,在之后的显示标签时,能确定相对应的内容。

在content中,如果每个div的状态样式都是一样的,就可以设为同样的class,不需再js或jQuery中单独设置它。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用 Bootstrap 实现 Tab 标签切换显示非常简单,只需要使用 Bootstrap 的 Tab 插件和一些基本的 HTML 和 CSS 代码即可。以下是一个基本的示例: HTML 代码: ``` <ul class="nav nav-tabs"> <li class="active"><a href="#tab1" data-toggle="tab">Tab 1</a></li> <li><a href="#tab2" data-toggle="tab">Tab 2</a></li> <li><a href="#tab3" data-toggle="tab">Tab 3</a></li> </ul> <div class="tab-content"> <div class="tab-pane active" id="tab1"> <p>这是 Tab 1 中的内容。</p> </div> <div class="tab-pane" id="tab2"> <p>这是 Tab 2 中的内容。</p> </div> <div class="tab-pane" id="tab3"> <p>这是 Tab 3 中的内容。</p> </div> </div> ``` 在这个示例中,我们使用了 Bootstrap 的 nav 和 tab 样式来创建了一个 Tab 标签。每个 Tab 都是一个链接,点击链接可以切换到对应的标签。我们使用了 data-toggle 属性来告诉 Bootstrap 使用 Tab 插件来处理这些链接。每个标签都是一个 div 元素,使用了 tab-pane 样式。其中,第一个标签使用了 active 样式来标记为默认显示的标签。 CSS 代码: ``` .nav-tabs { margin-bottom: 15px; } .tab-content { padding: 15px; border: 1px solid #ddd; border-top: none; } ``` 在这个示例中,我们使用了一些基本的 CSS 样式来调整 Tab 标签的外观。我们设置了一个 margin-bottom 样式来增加 Tab 标签和其他元素之间的间距,以及一个 padding 和 border 样式来设置标签的边框和内边距。 JavaScript 代码: ``` $(function() { $('.nav-tabs a').click(function() { $(this).tab('show'); }); }); ``` 在这个示例中,我们使用了 jQuery 库来管理 Tab 插件。当用户点击 Tab 标签中的链接时,我们使用 tab('show') 方法来显示对应的标签。 总之,使用 Bootstrap 实现 Tab 标签切换显示非常简单,只需要使用一些基本的 HTML、CSS 和 JavaScript 代码即可。通过使用 Tab 插件,我们可以轻松创建漂亮且易于使用的 Tab 标签,为用户提供更好的体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值