Javascript 之 Tab切换案例

 getAttribute("属性名") 获取标签行内属性

setAttribute("属性名","值") 设置标签行内属性

removeAttribute("属性名") 移除标签行内属性

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    ul {
      list-style-type: none;
    }
    .box {
      width: 400px;
      height: 300px;
      border: 1px solid #ccc;
      margin: 100px auto;
      overflow: hidden;
    }
    .hd {
      height: 45px;
    }
    .hd span {
      display: inline-block;
      width: 90px;
      background-color: pink;
      line-height: 45px;
      text-align: center;
      cursor: pointer;
    }
    .hd span.current {
      background-color: purple;
    }
    .bd li {
      height: 255px;
      background-color: purple;
      display: none;
    }
    .bd li.current {
      display: block;
    }
  </style>
</head>
<body>

<div class="box" id="box">
  <div class="hd">
    <span class="current">体育</span>
    <span>娱乐</span>
    <span>新闻</span>
    <span>综合</span>
  </div>
  <div class="bd">
    <ul>
      <li class="current">我是体育模块</li>
      <li>我是娱乐模块</li>
      <li>我是新闻模块</li>
      <li>我是综合模块</li>
    </ul>
  </div>
</div>

  <script>  
  //获取最外面的div
  var box = document.getElementById("box");
  //获取的是里面的第一个div
  var hd=box.getElementsByTagName("div")[0];
  //获取的是里面的第二个div
  var bd=box.getElementsByTagName("div")[1];
  //获取所有的li标签
  var list=bd.getElementsByTagName("li");//=================重点================
  //获取所有的span标签
  var spans=hd.getElementsByTagName("span");
  //循环遍历的方式,添加点击事件
  for(var i=0;i<spans.length;i++){
    //在点击之前就把索引保存在span标签中
    spans[i].setAttribute("index",i);//================================
    spans[i].onclick=function () {
      //第一件事,所有的span的类样式全部移除
      for(var j=0;j<spans.length;j++){
        spans[j].removeAttribute("class");
      }

      //第二件事,当前被点击的span应用类样式
      this.className="current";
      //span被点击的时候获取存储的索引值
      //alert(this.getAttribute("index"));
      var num=this.getAttribute("index");//==============重点================

      //获取所有的li标签,每个li标签先全部隐藏
      for(var k=0;k<list.length;k++){
        list[k].removeAttribute("class");
      }
      //当前被点击的span对应的li标签显示
      list[num].className="current";
    };
  }


</script>

</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 Vue 实现 tab切换的代码示例。 首先,需要在 Vue 实例中定义一个 data,用来存储当前选中的 tab: ```javascript new Vue({ el: '#app', data: { currentTab: 'tab1' }, methods: { selectTab(tab) { this.currentTab = tab } } }) ``` 然后,在 HTML 中使用 v-bind 和 v-on 指令来绑定数据和事件: ```html <div id="app"> <div class="tabs"> <div class="tab" :class="{ 'active': currentTab === 'tab1' }" @click="selectTab('tab1')">Tab 1</div> <div class="tab" :class="{ 'active': currentTab === 'tab2' }" @click="selectTab('tab2')">Tab 2</div> <div class="tab" :class="{ 'active': currentTab === 'tab3' }" @click="selectTab('tab3')">Tab 3</div> </div> <div class="tab-content"> <div class="tab-pane" v-show="currentTab === 'tab1'"> Content for tab 1 </div> <div class="tab-pane" v-show="currentTab === 'tab2'"> Content for tab 2 </div> <div class="tab-pane" v-show="currentTab === 'tab3'"> Content for tab 3 </div> </div> </div> ``` 在这个示例中,使用了 v-bind:class 指令来动态绑定 class,根据当前选中的 tab 判断是否添加 active 类名。同时使用了 v-on:click 指令来监听点击事件,并调用 selectTab 方法切换 tab。 最后,在 CSS 中定义样式: ```css .tabs { display: flex; } .tab { padding: 10px; cursor: pointer; } .tab.active { background-color: #ccc; } .tab-content { border: 1px solid #ccc; padding: 10px; } .tab-pane { display: none; } .tab-pane.show { display: block; } ``` 在这个示例中,使用了 display 属性来控制 tab 内容的显示,根据当前选中的 tab 判断是否显示。同时为 active 类名和 show 类名分别定义了样式,使得选中的 tab 和对应的内容高亮显示。 以上就是一个简单的 Vue 实现 tab切换的代码示例,希望对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值