jQuery实现tab标签切换功能
转载自:https://blog.csdn.net/qq_36526512/article/details/80902914
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>jQuery实现标签页切换 </title> <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> <script src="js/jquery-3.4.1.js"></script> </head> <body> <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'); }); //鼠标经过标签页切换 $('span').mouseover(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中单独设置它。
原文链接:https://blog.csdn.net/qq_36526512/java/article/details/80902914
效果图:
转载文章链接已标明,如有侵权请告知。文章仅作为知识记忆所用,如有错误,敬请指正。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?