Summarize four ways to implement dynamic tabs in js!
This article will give you a detailed introduction to various methods of dynamically selecting tabs in JS. I hope it will be helpful to friends in need!
JS multiple methods to implement dynamic selection of tabs
First post Producing HTML and CSS is not the point
<!DOCTYPE html> <html> <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> <link rel="stylesheet" href="css/reset.min.css"> <style> .tabBox{ margin: 20px auto; width: 500px; } .tabBox ul{ position: relative; top: 1px; } .tabBox ul li{ display: inline-block; padding: 0 5px; margin-right:10px; line-height: 33px; border: 1px solid #aaa; cursor: pointer; } .tabBox ul li.active{ border-bottom-color:#fff; /* 当前LI的边框覆盖着DIV的边框, 我们让LI的下边框是背景颜色白色,这样看上去就像没边框了 */ font-weight: bold; color: lightcoral; } .tabBox div{ display: none; line-height: 148px; text-align: center; border: 1px solid #aaa; } .tabBox div.active{ display: block; } </style> </head> <body> <div id="tabBox"> <ul> <li>新闻</li> <li>电影</li> <li>音乐</li> </ul> <div>嘟嘟</div> <div>滴滴</div> <div>嘟嘟滴滴</div> </div> <script src="js/tab_zy.js"></script> </body> </html>
[Implementation ideas]
Bind click events to all LI, when clicked For any li, do the second step
You can first make all the classes of LI && p empty (xxx.className=''), and then let the current click This LI and the corresponding p have the active style class
The following is the common part of JS to obtain elements
var oBox = document.getElementById('tabBox'), oList = oBox.getElementsByTagName('li'), op = oBox.getElementsByTagName('p');
Plan One
var LastIndex = 0 //记录上次所选的LI 选中的索引 for(var i=0;i<oList.length;i++){ oList[i].CurIndex = i oList[i].onclick = function(){ if(this.CurIndex===LastIndex) return;//=>如果当前点击的索引和上一次索引相同(点击的就是上一个被选中的),我们不做任何事情 oList[LastIndex].className = op[LastIndex].className = '' //=>清空上一次 oList[this.CurIndex].className=op[this.CurIndex].className = 'active' //=>修改LAST-INDEX值,让当前本选中的索引作为下一次点击要清除的上一次的索引 LastIndex = this.CurIndex } }
Plan Two:
//=>1.传递对象 for(var i = 0; i<oList.length ; i++){ oList[i].onclick = function(){ ChangeTab(this); } } function ChangeTab(n){ for(var j=0;j<oList.length;j++){ //=>如果当前循环的LI和传递进来点击的那个元素相同,说明当前循环的这个LI就是被点击的,让其有选中样式 if(oList[j]===n){ oList[j].className= op[j].className = 'active' }else{ //=>不相等,则不是被点击的,我们取消选中样式即可 oList[j].className= op[j].className = '' } } }
Plan Three:
for (let i = 0; i < tabList.length; i++) { tabList[i].onclick=function(){ // 事件绑定:给当前元素的某一个事情绑定一个方法,绑定的时候方法没有执行 // (属于创建一个方法,当在页面中手动触发点击事件的时候绑定的方法才会执行) changeTab(i); } } // 形参变量:当执行这个方法的时候,会把当前点击的这个LI索引传递过来 function changeTab(n) { // 1、所有都没有选中样式 for (let i = 0; i < tabList.length; i++) { tabList[i].className=''; pList[i].className =''; } // 2、当前点击的所有选中样式 tabList[n].className='active'; pList[n].className = 'active'; }
Plan Four: (JQ implementation)
//当HTML结构都加载完成执行函数 jQuery(function($){ //基于JQ内置EACH机制,给每个LI 都绑定了 点击事件 $('.tabBox>.header>li').on('click',function(){ let index = $(this).index();//获取当前点击LI 的索引 //siblings() 获取兄弟元素 $(this).addClass('active').siblings().removeClass('active').parent().nextAll('p').eq(index).addClass('active').siblings('p').removeClass('active') }); });
Related recommendations: [JavaScript video tutorial]
The above is the detailed content of Summarize four ways to implement dynamic tabs in js!. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to use WebSocket and JavaScript to implement an online speech recognition system Introduction: With the continuous development of technology, speech recognition technology has become an important part of the field of artificial intelligence. The online speech recognition system based on WebSocket and JavaScript has the characteristics of low latency, real-time and cross-platform, and has become a widely used solution. This article will introduce how to use WebSocket and JavaScript to implement an online speech recognition system.

WebSocket and JavaScript: Key technologies for realizing real-time monitoring systems Introduction: With the rapid development of Internet technology, real-time monitoring systems have been widely used in various fields. One of the key technologies to achieve real-time monitoring is the combination of WebSocket and JavaScript. This article will introduce the application of WebSocket and JavaScript in real-time monitoring systems, give code examples, and explain their implementation principles in detail. 1. WebSocket technology

How to use WebSocket and JavaScript to implement an online reservation system. In today's digital era, more and more businesses and services need to provide online reservation functions. It is crucial to implement an efficient and real-time online reservation system. This article will introduce how to use WebSocket and JavaScript to implement an online reservation system, and provide specific code examples. 1. What is WebSocket? WebSocket is a full-duplex method on a single TCP connection.

Introduction to how to use JavaScript and WebSocket to implement a real-time online ordering system: With the popularity of the Internet and the advancement of technology, more and more restaurants have begun to provide online ordering services. In order to implement a real-time online ordering system, we can use JavaScript and WebSocket technology. WebSocket is a full-duplex communication protocol based on the TCP protocol, which can realize real-time two-way communication between the client and the server. In the real-time online ordering system, when the user selects dishes and places an order

JavaScript tutorial: How to get HTTP status code, specific code examples are required. Preface: In web development, data interaction with the server is often involved. When communicating with the server, we often need to obtain the returned HTTP status code to determine whether the operation is successful, and perform corresponding processing based on different status codes. This article will teach you how to use JavaScript to obtain HTTP status codes and provide some practical code examples. Using XMLHttpRequest

JavaScript and WebSocket: Building an efficient real-time weather forecast system Introduction: Today, the accuracy of weather forecasts is of great significance to daily life and decision-making. As technology develops, we can provide more accurate and reliable weather forecasts by obtaining weather data in real time. In this article, we will learn how to use JavaScript and WebSocket technology to build an efficient real-time weather forecast system. This article will demonstrate the implementation process through specific code examples. We

Introduction to the method of obtaining HTTP status code in JavaScript: In front-end development, we often need to deal with the interaction with the back-end interface, and HTTP status code is a very important part of it. Understanding and obtaining HTTP status codes helps us better handle the data returned by the interface. This article will introduce how to use JavaScript to obtain HTTP status codes and provide specific code examples. 1. What is HTTP status code? HTTP status code means that when the browser initiates a request to the server, the service

Usage: In JavaScript, the insertBefore() method is used to insert a new node in the DOM tree. This method requires two parameters: the new node to be inserted and the reference node (that is, the node where the new node will be inserted).
