通过操作Dom实现tab切换

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        #Div {
            width: 400px;
        }

        .taxon {
            background: red;
        }
    </style>

</head>

<body>
    <div id="Div"></div>
    <script>
        //js代码。
        function switcHover(cLass, butL, divL) {
            //获取到最外层的的元素。
            var outerDiv = document.getElementById('Div');
            //新建一个Div元素,用来盛放button元素。
            var newDiv = document.createElement('div');
            //通过循环决定新建多少button元素。
            for (var j = 0; j < butL.length; j++) {
                var newButton = document.createElement('button');
                //给button元素设置样式
                newButton.style.width = '80px';
                newButton.style.height = '40px';
                newButton.innerHTML = butL[j]
                //把建好的botton元素添加到新建的Div元素中
                newDiv.append(newButton);
                //通过自执行函数来进行记录的步骤。传两个值,一个为下标,另一个为类名。
                (function (j, cLass) {
                    //获取button元素以及div元素的集合。
                    var buttonGather = document.getElementsByTagName('button');
                    var divGather = document.getElementsByTagName('div');
                    //点击事件。注意是给新建的button元素添加点击事件。
                    newButton.onclick = function () {
                        //通过循环清除类以及隐藏。
                        for (var k = 0; k < buttonGather.length; k++) {
                            buttonGather[k].className = '';
                            //因为添加好的div元素比button元素多两个。所以取对应的元素就需要下标+2.
                            divGather[k + 2].style.display = 'none'
                        }
                        //加类以及显示。
                        buttonGather[j].className = cLass;
                        divGather[j + 2].style.display = 'block'
                    }
                })(j, cLass)
                //把处理好的div元素添加到最外层元素中
                outerDiv.append(newDiv);
            }
            //通过循环决定新建几个div。建议和button元素一致。以用来点击切换对应的元素。
            for (var i = 0; i < divL.length; i++) {
                var _newDiv = document.createElement('div');
                //设置样式
                _newDiv.style.width = '100%';
                _newDiv.style.height = '100px';
                _newDiv.style.background = 'blue';
                _newDiv.innerText = divL[i];
                //默认为隐藏,点击的时候出现
                _newDiv.style.display = 'none';
                //把新建好的div添加到最外层的div中(自行选择添加到那个div中)
                outerDiv.append(_newDiv);
            }
        }
        switcHover('taxon', [11, 22, 33], ['Hello', 'Word', 'Good']);
    </script>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,除了使用纯JavaScript以外,我们还可以使用jQuery来实现选项卡切换。以下是一个简单的实现示例: HTML代码: ```html <div class="tab"> <button class="tablinks" data-tab="tab1">选项卡1</button> <button class="tablinks" data-tab="tab2">选项卡2</button> <button class="tablinks" data-tab="tab3">选项卡3</button> </div> <div class="tabcontent" id="tab1"> <h3>选项卡1</h3> <p>这是选项卡1的内容。</p> </div> <div class="tabcontent" id="tab2"> <h3>选项卡2</h3> <p>这是选项卡2的内容。</p> </div> <div class="tabcontent" id="tab3"> <h3>选项卡3</h3> <p>这是选项卡3的内容。</p> </div> ``` CSS代码: ```css /* 隐藏所有选项卡内容 */ .tabcontent { display: none; } /* 选项卡按钮样式 */ .tab button { background-color: #eee; border: none; outline: none; cursor: pointer; padding: 10px 20px; } /* 激活状态的选项卡按钮样式 */ .tab button.active { background-color: #ccc; } /* 选项卡内容样式 */ .tabcontent { padding: 20px; border: 1px solid #ccc; } ``` jQuery代码: ```javascript $(document).ready(function() { // 绑定选项卡按钮的点击事件 $(".tablinks").click(function() { // 获取选项卡名称 var tabName = $(this).attr("data-tab"); // 隐藏所有选项卡内容 $(".tabcontent").hide(); // 取消所有选项卡按钮的激活状态 $(".tablinks").removeClass("active"); // 显示当前选项卡内容 $("#" + tabName).show(); // 激活当前选项卡按钮 $(this).addClass("active"); }); }); ``` 在上述代码中,使用了jQuery来简化代码。首先使用`$(document).ready()`函数来确保DOM加载完成后再执行代码。然后使用`$(".tablinks").click()`函数来绑定选项卡按钮的点击事件。在事件处理函数中,通过`$(this).attr("data-tab")`方法获取当前选项卡的名称,并根据名称找到对应的选项卡内容。然后使用`$(".tabcontent").hide()`方法将所有选项卡内容隐藏,使用`$(".tablinks").removeClass("active")`方法取消所有选项卡按钮的激活状态。最后使用`$("#" + tabName).show()`方法显示当前选项卡内容,使用`$(this).addClass("active")`方法激活当前选项卡按钮。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值