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 相关文章推荐
javascript字符串与数组转换汇总
May 26 Javascript
js电话号码验证方法
Sep 28 Javascript
简单谈谈json跨域
Mar 13 Javascript
vuejs如何配置less
Apr 25 Javascript
angularjs实现搜索的关键字在正文中高亮出来
Jun 13 Javascript
vue开发调试神器vue-devtools使用详解
Jul 13 Javascript
关于laydate.js加载laydate.css路径错误问题解决
Dec 27 Javascript
react-native 圆弧拖动进度条实现的示例代码
Apr 12 Javascript
jquery使用FormData实现异步上传文件
Oct 25 jQuery
js实现网页同时进行多个倒计时功能
Feb 25 Javascript
layui扩展上传组件模拟进度条的方法
Sep 23 Javascript
JavaScript实现队列结构过程
Dec 06 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 图片上添加透明度渐变的效果
2009/06/29 PHP
php去除重复字的实现代码
2011/09/16 PHP
深入PHP FTP类的详解
2013/06/13 PHP
php实现的通用图片处理类
2015/03/24 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
关于递归运算的顺序测试代码
2011/11/30 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
AngularJS 支付倒计时功能实现思路
2017/06/05 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
python脚本实现验证码识别
2018/06/07 Python
Sanic框架路由用法实例分析
2018/07/16 Python
Python变量访问权限控制详解
2019/06/29 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
2020/04/27 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
建筑工程造价专业自荐信
2014/07/08 职场文书
公司表扬稿范文
2015/05/05 职场文书
2016幼儿园教师年度考核评语
2015/12/01 职场文书
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL