JavaScript实现tab标签-解决循环bug问题
来源:互联网 发布:伍聚网络股票 编辑:程序博客网 时间:2024/06/04 21:16
用JavaScript实现tab标签当我们用循环实现每个tab标签点击效果的时候会发现循环bug,每个i输出都是循环的最终结果而不是每一个循环中的数值
解决方法有两个
第一种方法是给DOM节点添加_index属性,属性值等于索引i
简单代码如下:
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body> <div class="tab"> <ul class="tab-menuWrapper" id="tab-menuWrapper"> <li>tab1</li> <li>tab2</li> <li>tab3</li> <li>tab4</li> </ul> <div class="tab-contentWrapper" id="tab-contentWrapper"> <div>content1</div> <div style="display:none;">content2</div> <div style="display:none;">content3</div> <div style="display:none;">content4</div> </div> </div><script> var tabMenu=document.getElementById("tab-menuWrapper").getElementsByTagName("li"); var tabContent=document.getElementById("tab-contentWrapper").getElementsByTagName("div"); for(var i=0;i<tabMenu.length;i++){ tabMenu[i]._index=i; tabMenu[i].onclick= function () { for(var j=0;j<tabContent.length;j++){ tabContent[j].style.display="none"; } tabContent[this._index].style.display="block"; } }</script></body></html>
一个是闭包:
代码如下:
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body> <div class="tab"> <ul class="tab-menuWrapper" id="tab-menuWrapper"> <li>tab1</li> <li>tab2</li> <li>tab3</li> <li>tab4</li> </ul> <div class="tab-contentWrapper" id="tab-contentWrapper"> <div>content1</div> <div style="display:none;">content2</div> <div style="display:none;">content3</div> <div style="display:none;">content4</div> </div> </div><script> var tabMenu=document.getElementById("tab-menuWrapper").getElementsByTagName("li"); var tabContent=document.getElementById("tab-contentWrapper").getElementsByTagName("div"); for(var i=0;i<tabMenu.length;i++){ (function (i) { tabMenu[i].onclick= function () { for(var j=0;j<tabContent.length;j++){ tabContent[j].style.display="none"; } tabContent[i].style.display="block"; } })(i); }</script></body></html>
内容整理来自于《编写高质量代码-web前端开发修炼之道》
这本书对于提高自己日常的前端代码编写规范和质量挺有帮助的,推荐
0 0
- JavaScript实现tab标签-解决循环bug问题
- javascript的tab标签
- js(JavaScript)代码实现的TAB标签切换效果
- Tab标签实现
- JavaScript实现的tab
- javascript 实现Tab滑动
- Javascript实现Tab切换
- JavaScript实现tab效果图
- 【JavaScript实现Tab切换】
- JavaScript提高:003:easy UI实现tab页面自适应问题
- ActivityGroup实现Tab分页标签
- jQuery 实现Tab标签切换
- JS实现tab标签功能
- JS实现TAB标签效果
- tab标签切换页实现
- Fragment实现的Tab标签
- js实现切换Tab标签
- JavaScript实现拖拽和解决部分bug
- Android_listview_video安卓列表视频直接播放
- PendingIntent与Intent的区别
- MySQL数据库企业生产常用4种安装方法介绍和选择
- 二叉树遍历
- 重装系统U盘版本
- JavaScript实现tab标签-解决循环bug问题
- EM算法学习笔记
- Android简易实战教程--第三十八话《自定义通知NotifiCation》
- hdu 5912 Fraction -2016中国大学生程序设计竞赛(长春)
- 面试经历
- 【egret】 egret游戏中添加“长按识别二维码”
- MAC 下修改mysql默认密码方法
- SRP Protocol Design
- 对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序