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类继承及实例化的方法
Jul 25 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
JS简单模拟触发按钮点击功能的方法
Nov 30 Javascript
BootStrap实现手机端轮播图左右滑动事件
Oct 13 Javascript
js控制li的隐藏和显示实例代码
Oct 15 Javascript
Vue2学习笔记之请求数据交互vue-resource
Feb 23 Javascript
vue之数据交互实例代码
Jun 20 Javascript
webpack使用 babel-loader 转换 ES6代码示例
Aug 21 Javascript
Vue2.0 http请求以及loading展示实例
Mar 06 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
Bootstrap实现模态框效果
Sep 30 Javascript
Vue 实现可视化拖拽页面编辑器
Feb 01 Vue.js
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转义Json里的特殊字符的函数
2015/06/08 PHP
php动态绑定变量的用法
2015/06/16 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
php实现留言板功能
2017/03/05 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
js加强的经典分页实例
2013/03/15 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
python处理中文编码和判断编码示例
2014/02/26 Python
python生成器generator用法实例分析
2015/06/04 Python
Python3.6正式版新特性预览
2016/12/15 Python
基于Python os模块常用命令介绍
2017/11/03 Python
Python使用SQLite和Excel操作进行数据分析
2018/01/20 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
python try except 捕获所有异常的实例
2018/10/18 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
python实现飞船大战
2020/04/24 Python
浅析Python __name__ 是什么
2020/07/07 Python
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
2014年销售经理工作总结
2014/12/01 职场文书
检讨书模板
2015/01/29 职场文书
公司员工手册范本
2015/05/14 职场文书