Home > Web Front-end > JS Tutorial > body text

4 JavaScript methods to implement simple tab switching_javascript skills

WBOY
Release: 2016-05-16 15:21:43
Original
1424 people have browsed it

This article explains 4 methods of simple tab switching using JavaScript and shares them with you for your reference. The specific content is as follows
Rendering:

Method 1: for loop + if to determine whether the current click matches the custom array

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>tab切换</title>
  <style type="text/css">
    button {
      width:120px;
      height: 32px;
      line-height: 32px;
      background-color: #ccc;
      font-size: 24px;
    }
    div {
      display: none;
      width:200px;
      height: 200px;
      font-size: 72px;
      color:#ddd;
      background-color: green;
      border:1px solid black;
    }
  </style>
</head>
<body>
  <button style="background-color: yellow;">1</button>
  <button>2</button>
  <button>3</button>
  <button>4</button>
  <div style="display:block;">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <script type="text/javascript">
  //定义数组并获取数组内各个的节点
  var buttonArr = document.getElementsByTagName("button");
  var divArr = document.getElementsByTagName("div");
  for(var i = 0; i < buttonArr.length;i++) {
    buttonArr[i].onclick = function() {
      //this 
      // alert(this.innerHTML)
      //for循环遍历button数组长度
      for(var j = 0; j < buttonArr.length; j++) {
        //重置所有的button样式
        buttonArr[j].style.backgroundColor = "#ccc";
        //给当前的(点击的那个)那个button添加样式
        this.style.backgroundColor = "yellow";
        //隐藏所有的div
        divArr[j].style.display = "none";
        //判断当前点击是按钮数组中的哪一个?
        if(this == buttonArr[j]) {
          // alert(j);
           //显示点击按钮对应的div
          divArr[j].style.display = "block";
        }
      }
    }
  }
  </script>
</body>
</html>
Copy after login

Method 2: Customize the index to the current click

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>tab切换</title>
  <style type="text/css">
    button {
      width:120px;
      height: 32px;
      line-height: 32px;
      background-color: #ccc;
      font-size: 24px;
    }
    div {
      display: none;
      width:200px;
      height: 200px;
      font-size: 72px;
      color:#ddd;
      background-color: green;
      border:1px solid black;
    }
  </style>
</head>
<body>
  <button style="background-color: yellow;">1</button>
  <button>2</button>
  <button>3</button>
  <button>4</button>
  <div style="display:block;">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <script type="text/javascript">
  var buttonArr = document.getElementsByTagName("button");
  var divArr = document.getElementsByTagName("div");
  for(var i = 0; i < buttonArr.length;i++) {
    buttonArr[i].index = i;
    // buttonArr[i].setAttribute("index",i);
    buttonArr[i].onclick = function() {
      for(var j = 0; j < buttonArr.length; j++) {
        buttonArr[j].style.backgroundColor = "#ccc";
        buttonArr[this.index].style.backgroundColor = "yellow";
        divArr[j].style.display = "none";
        divArr[this.index].style.display = "block";
      }
    }
  }
  
  </script>
</body>
</html>
Copy after login

Method three: className

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>tab</title>
  <style type="text/css">
    * {padding:0; margin:0;}
    button {
      background-color: #ccc;
      width:80px;
      height: 30px;
    }
    .btn-active {
      background-color: yellow;
      font-weight:bold;
      font-size: 14px;
    }
    div{
      width:200px;
      height: 200px;
      font-size: 64px;
      background-color: #0c0;
      display: none;
      color:#fff;
    }
    .div-active {
      display: block;
    }
  </style>
</head>
<body>
  <button class="btn-active">按钮1</button>
  <button>按钮2</button>
  <button>按钮3</button>
  <button>按钮4</button>
  <div class="div-active">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <script type="text/javascript">
  //1.先获取元素
  var buttonList = document.getElementsByTagName("button");
  var divList = document.getElementsByTagName("div");
  //2.添加事件
  for(var i = 0; i < buttonList.length; i++) {
    buttonList[i].index = i;
    buttonList[i].onclick = function() {
      for(var j = 0; j < buttonList.length;j++) {
        buttonList[j].className = "";
        divList[j].className = "";
      }
      this.className = "btn-active";
      divList[this.index].className = "div-active";
    }
  }
  </script>
</body>
</html>
Copy after login

Method 4: Self-execution of className+anonymous function

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>tab</title>
  <style type="text/css">
    * {padding:0; margin:0;}
    button {
      background-color: #ccc;
      width:80px;
      height: 30px;
    }
    .btn-active {
      background-color: yellow;
      font-weight:bold;
      font-size: 14px;
    }
    div{
      width:200px;
      height: 200px;
      font-size: 64px;
      background-color: #0c0;
      display: none;
      color:#fff;
    }
    .div-active {
      display: block;
    }
  </style>
</head>
<body>
  <button class="btn-active">按钮1</button>
  <button>按钮2</button>
  <button>按钮3</button>
  <button>按钮4</button>
  <div class="div-active">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <script type="text/javascript">
  //1.先获取元素
  var buttonList = document.getElementsByTagName("button");
  var divList = document.getElementsByTagName("div");
  //2.添加事件
  for(var i = 0; i < buttonList.length; i++) {
    (function(i){ //匿名函数自执行
       buttonList[i].onclick = function() {
        for(var j = 0; j < buttonList.length;j++) {
          buttonList[j].className = "";
          divList[j].className = "";
        }
        this.className = "btn-active";
        divList[i].className = "div-active";
      }
    })(i)
  }
  </script>
</body>
</html>
Copy after login

I hope this article will be helpful to everyone learning JavaScript programming.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template