javascript显示隐藏层比较不错的方法分析


Posted in Javascript onSeptember 30, 2008

这是一个Q&A的页面,设计师希望能够点击相关的问题后,在它下方显示对应的答案。这是一个比较常见功能,通常的解决办法是把“答案”当作整个问题容器的子元素,然后点击父元素上的按钮后展开对应的子元素。通过父子元素的对应关系来匹配标题和答案。

但是当初写html的时候并没有考虑到脚本编写(需求是后加的),所以,答案和标题没有父子关系可以对应。 html代码如下。

所以,这里需要用到另一种方法来匹配答案和标题。我们可以通过捕捉元素的位置来匹配它们。也就是说第一条标题,对应的肯定是整个序列中的第一条答案,第二条标题对应的肯定是第二条答案。 这样就可以无视html结构来控制它们的对应关系了。

<ul class="qusetionList"> 
<li class="liHeader"><span class="colABC-A">??</span><span class="colABC-B">?祟}</span><span class="colABC-C">??者/???者</span></li> <li class="liBody"><span class="colABC-A">1</span><span class="colABC-B">想要?小店需要付???</span><span class="colABC-C"><a href="#" title="" class="openLink"></a> 客服</span></li> 
<li class="answer"><span class="colABC-B"> 
??段於策?其所以不收取任何?用,?使用者不用??摹?lt;BR> 
除了加值服?盏墓δ苣=M之外。</span><span class="colABC-C"><a href="#" title="" class="closeLink"></a> 客服</span></li> 
<li class="liBody"><span class="colABC-A">2</span><span class="colABC-B">想要?小店需要付???</span><span class="colABC-C"><a href="#" title="" class="openLink"></a> 客服</span></li> 
<li class="answer"><span class="colABC-B"> 
??段於策?其所以不收取任何?用,?使用者不用??摹?lt;BR> 
除了加值服?盏墓δ苣=M之外。</span><span class="colABC-C"><a href="#" title="" class="closeLink"></a> 客服</span></li> 
</ul>

脚本解释:当点击openLink这个图标时,显示和openLink在序列中位置相同的answer。这里需要将onclick事件放在闭包里面,等到for循环结束后才被激活。如果没有这层闭包,那不管点击哪个openLink,显示的都将是openLink.length的值。

document.getElementsByClassName = function(eleClassName) 
{ 
var getEleClass = [];//定义一个数组 
var myclass = new RegExp("\\b"+eleClassName+"\\b");//创建一个正则表达式对像 
var elem = this.getElementsByTagName("*");//获取文档里所有的元素 
for(var h=0;h<elem.length;h++) 
{ 
var classes = elem[h].className;//获取class对像 
if (myclass.test(classes)) getEleClass.push(elem[h]);//正则比较,取到想要的CLASS对像 
} 
return getEleClass;//返回数组 
} 
//上面这是捕捉class的方法,我一直用它,复制过来就OK。 var answer = document.getElementsByClassName("answer"); 
var openLink = document.getElementsByClassName("openLink"); 
var closeLink = document.getElementsByClassName("closeLink"); 
for (i = 0; i< openLink.length ; i++ ) 
{ 
( 
function(i){ 
openLink[i].onclick = function (){ 
var j = i; 
answer[j].style.display = "block" 
} 
closeLink[i].onclick = function (){ 
var j = i; 
answer[j].style.display = "none" 
} 
} 
)(i); 
}
Javascript 相关文章推荐
js 加载时自动调整图片大小
May 28 Javascript
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
Jun 02 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
Aug 05 Javascript
原生javascript实现图片弹窗交互效果
Jan 12 Javascript
node.js 使用ejs模板引擎时后缀换成.html
Apr 22 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
Aug 05 Javascript
Web前端开发工具——bower依赖包管理工具
Mar 29 Javascript
js带闹铃功能的倒计时代码
Sep 29 Javascript
微信小程序 聊天室简单实现
Apr 19 Javascript
基于Two.js实现星球环绕动画效果的示例
Nov 06 Javascript
JS 仿支付宝input文本输入框放大组件的实例
Nov 14 Javascript
js原生实现移动端手指滑动轮播图效果的示例
Jan 02 Javascript
javascript不同页面传值的改进版
Sep 30 #Javascript
简明json介绍
Sep 28 #Javascript
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
Sep 27 #Javascript
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
Sep 26 #Javascript
验证用户是否修改过页面的数据的实现方法
Sep 26 #Javascript
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 #Javascript
js每次Title显示不同的名言
Sep 25 #Javascript
You might like
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
python 读写文件,按行修改文件的方法
2018/07/12 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
Python socket 套接字实现通信详解
2019/08/27 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
给女儿的表扬信
2014/01/18 职场文书
同事吵架检讨书
2014/02/05 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
学校三八妇女节活动情况总结
2014/03/09 职场文书
病媒生物防治方案
2014/05/13 职场文书
2014年工程部工作总结
2014/11/25 职场文书
开展警示教育活动总结
2015/05/09 职场文书
2015党建工作简报
2015/07/21 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL