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 解决“options为空或不是对象”
Dec 22 Javascript
js自动生成对象的属性示例代码
Oct 28 Javascript
js动态设置div的值下例子
Oct 29 Javascript
JavaScript 性能优化小结
Oct 12 Javascript
使用angularjs创建简单表格
Jan 21 Javascript
javascript每日必学之循环
Feb 19 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
vue.js动画中的js钩子函数的实现
Jul 06 Javascript
深入理解JavaScript的async/await
Aug 05 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
利用webpack理解CommonJS和ES Modules的差异区别
Jun 16 Javascript
Vue——前端生成二维码的示例
Dec 19 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获得用户ip地址的比较不错的方法
2014/02/08 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
php树型类实例
2014/12/05 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
JS中常用的消息框总结
2018/02/24 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
python调用百度语音识别api
2018/08/30 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
Django 解决由save方法引发的错误
2020/05/21 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
python logging模块的使用
2020/09/07 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
增值税发票丢失证明
2015/06/19 职场文书
迎国庆主题班会
2015/08/17 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js