电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

用JS實現選項卡

瀏覽:87日期:2024-05-15 14:42:58

本文實例為大家分享了JS實現選項卡的具體代碼,供大家參考,具體內容如下

案例描述

在瀏覽器中顯示一個選項卡界面,頭部為1、2、3、4、5。點擊頭部任意一個數字,都在下方顯示出不同的信息,并且鼠標停留在任意一個數字上時,數字的顏色改變。案例如下圖所示

默認的是數字1中的內容

用JS實現選項卡

點擊數字二

用JS實現選項卡

點擊其他數字依此類推,在這里就不一一展示了

HTML代碼

全部HTML代碼展示

<div id='table'> <!-- 頭部 --> <div id='header'> <ul> <li class='selected'> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >1</a> </li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >2</a> </li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >3</a> </li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >4</a> </li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >5</a> </li> </ul> </div> <!-- 內容 --> <div id='content'> <div style='display: block'> <ul> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第一個選項卡的內容1</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第一個選項卡的內容2</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第一個選項卡的內容3</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第一個選項卡的內容4</a></li> </ul> </div> <div class='dom'> <ul> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第二個選項卡的內容1</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第二個選項卡的內容2</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第二個選項卡的內容3</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第二個選項卡的內容4</a></li> </ul> </div> <div class='dom'> <ul> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第三個選項卡的內容1</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第三個選項卡的內容2</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第三個選項卡的內容3</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第三個選項卡的內容4</a></li> </ul> </div> <div class='dom'> <ul> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第四個選項卡的內容1</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第四個選項卡的內容2</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第四個選項卡的內容3</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第四個選項卡的內容4</a></li> </ul> </div> <div class='dom'> <ul> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第五個選項卡的內容1</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第五個選項卡的內容2</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第五個選項卡的內容3</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第五個選項卡的內容4</a></li> </ul> </div> </div> </div></body>

HTML代碼分解 ----頭部

頭部由一個包含了5個 li 標簽的列表構成,每個 li 標簽中都包含一個 a 標簽

這里的selected選擇器的作用是 改變選中的li的背景顏色

<div id='header'> <ul> <li class='selected'> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >1</a> </li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >2</a> </li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >3</a> </li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >4</a> </li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >5</a> </li> </ul></div>

HTML代碼分解 ----內容

在這里每一個含有dom選擇器的div依次代表的是每一個選項卡的內容

.dom選擇器中設置display:none;,使每一個選項卡內容隱藏

而對展現的內容另外加一個style=“display: block”; 的屬性,使其展現在瀏覽器上

<div id='content'> <div style='display: block'> <ul> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第一個選項卡的內容1</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第一個選項卡的內容2</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第一個選項卡的內容3</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第一個選項卡的內容4</a></li> </ul> </div> <div class='dom'> <ul> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第二個選項卡的內容1</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第二個選項卡的內容2</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第二個選項卡的內容3</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第二個選項卡的內容4</a></li> </ul> </div> <div class='dom'> <ul> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第三個選項卡的內容1</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第三個選項卡的內容2</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第三個選項卡的內容3</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第三個選項卡的內容4</a></li> </ul> </div> <div class='dom'> <ul> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第四個選項卡的內容1</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第四個選項卡的內容2</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第四個選項卡的內容3</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第四個選項卡的內容4</a></li> </ul> </div> <div class='dom'> <ul> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第五個選項卡的內容1</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第五個選項卡的內容2</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第五個選項卡的內容3</a></li> <li> <a href='http://www.hdgsjgj.cn/bcjs/14743.html#' >我是第五個選項卡的內容4</a></li> </ul> </div></div>

CSS樣式

css代碼就不做詳細的說明了

<style> * { margin: 0; padding: 0; box-sizing: border-box; text-decoration: none; list-style: none; } a { display: inline-block; color: black; float: left; text-align: center; } #table { width: 500px; height: 170px; margin: 0 auto; margin-top: 50px; border: 1px solid #e0e0e0; } /* 頭部樣式 */ #table #header { width: 100%; height: 50px; } #table #header a { width: 20%; line-height: 50px; background-color: #e0e0e0; } #table #header a:hover { color: red; } #table #header .selected a{ background-color:whitesmoke; } /* 內容樣式 */ #table #content { width: 100%; height: 120px; } #table #content .dom { margin-top: 10px; display: none; } #table #content .dom a{ width: 50%; padding: 10px 0; }

JS實現代碼一

JS代碼需要實現的是:每點擊一個選項卡數字,顯示出相應的選項卡內容并且頭部樣式作相應的改變

全部JS代碼顯示

<script> window.onload = function(){ // 獲取元素 var header = document.getElementById(’header’); var hLi = header.getElementsByTagName(’li’); var dom = document.getElementsByClassName(’dom’); // console.log(dom); // 遍歷hLi中所有的li標簽 for (let index = 0; index < hLi.length; index++) { //獲取單個li標簽 let li = hLi[index]; //監聽li標簽點擊事件并改變content中的內容 li.addEventListener(’click’,function(){ //改變點擊li的樣式 li.setAttribute(’class’,’selected’); //消去原來li的樣式 并將class設置為null for (let j = 0; j < hLi.length; j++) { if( j != index && hLi[j].getAttribute(’class’) == ’selected’){ hLi[j].setAttribute(’class’,’null’); break; } } //改變content中的顯示內容 //遍歷每一個dom k是dom的下標 for (let k = 0; k< hLi.length; k++) { if(index === k) dom[k].style.display = ’block’; else dom[k].style.display = ’none’; } }); } }</script>

JS代碼分解 ----頭部樣式改變

對每一個li標簽添加點擊監聽器,將點擊的li標簽的class屬性置為selected,使其展現在瀏覽器上。

再使用一個for循環遍歷每一個li標簽的class屬性的值,若該屬性值===‘selected’并且不是剛剛點擊的li標簽,則把該標簽的class屬性值改為*‘null’*

//獲取單個li標簽 let li = hLi[index]; //監聽li標簽點擊事件并改變content中的內容 li.addEventListener(’click’,function(){ //改變點擊li的樣式 li.setAttribute(’class’,’selected’); //消去原來li的樣式 并將class設置為null for (let j = 0; j < hLi.length; j++) { if( j != index && hLi[j].getAttribute(’class’) == ’selected’){ hLi[j].setAttribute(’class’,’null’); break; } }

JS代碼分解 ----內容改變

用一個for語句遍歷每一個dom,如果該dom的下標與點擊的 li 標簽的下標一樣,則將該dom的display置為block,否則置為none

//改變content中的顯示內容 //遍歷每一個dom k是dom的下標 for (let k = 0; k< hLi.length; k++) { if(index === k) dom[k].style.display = ’block’; else dom[k].style.display = ’none’; }

JS實現代碼二

代碼一還是有點復雜了,這里有一個更簡單的方法。就不作過多解釋重要部分和理解都在注釋中提到了

window.onload = function(){ // 獲取元素 var header = document.getElementById(’header’); var hLi = $(’header’).getElementsByTagName(’li’); var dom = $(’content’).getElementsByClassName(’dom’); for (let index = 0; index < hLi.length; index++) { let li = hLi[index]; //監聽點擊事件 li.addEventListener(’click’,function(){ //清除同級別的選中樣式類 for (let j = 0; j< hLi.length; j++) { hLi[j].className = ’’; //將class屬性置為空 dom[j].style.display = ’none’; //將所有內容隱藏 } this.className = ’selected’; //設置當前li標簽選中類 dom[index].style.display = ’block’; //選定li標簽顯示內容 }); } //封裝 function $(id) { return typeof id === ’string’? document.getElementById(id) : null; }}

如果大家還想深入學習,可以點擊兩個精彩的專題:javascript選項卡操作方法匯總 jquery選項卡操作方法匯總

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 高压分散机(高压细胞破碎仪)百科-北京天恩瀚拓 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 桑茶-七彩贝壳桑叶茶 长寿茶| 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛调查出轨取证公司_青岛婚外情取证-青岛探真调查事务所 | 中天寰创-内蒙古钢结构厂家|门式刚架|钢结构桁架|钢结构框架|包头钢结构煤棚 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 | crm客户关系管理系统,销售管理系统,crm系统,在线crm,移动crm系统 - 爱客crm | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 2025世界机器人大会_IC China_半导体展_集成电路博览会_智能制造展览网 | PO膜_灌浆膜及地膜供应厂家 - 青州市鲁谊塑料厂 | 南京泽朗生物科技有限公司 | 盐城网络公司_盐城网站优化_盐城网站建设_盐城市启晨网络科技有限公司 | 置顶式搅拌器-优莱博化学防爆冰箱-磁驱搅拌器-天津市布鲁克科技有限公司 | 真空泵厂家_真空泵机组_水环泵_旋片泵_罗茨泵_耐腐蚀防爆_中德制泵 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 上海乾拓贸易有限公司-日本SMC电磁阀_德国FESTO电磁阀_德国FESTO气缸 | 精密模具-双色注塑模具加工-深圳铭洋宇通 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 | OpenI 启智 新一代人工智能开源开放平台| 微信聊天记录恢复_手机短信删除怎么恢复_通讯录恢复软件下载-快易数据恢复 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | PE一体化污水处理设备_地埋式生活污水净化槽定制厂家-岩康塑业 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 | 大学食堂装修设计_公司餐厅效果图_工厂食堂改造_迈普装饰 | 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 |