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 文字符串转换unicode编码函数
May 30 Javascript
IE6图片加载的一个BUG解决方法
Jul 13 Javascript
JS中的public和private对象,即static修饰符
Jan 18 Javascript
jQuery列表拖动排列具体实现
Nov 04 Javascript
node.js中的fs.futimes方法使用说明
Dec 17 Javascript
javascript常见数据验证插件大全
Aug 03 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
Oct 09 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
Jan 15 Javascript
node中Express 动态设置端口的方法
Aug 04 Javascript
JS实现利用两个队列表示一个栈的方法
Dec 13 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
Jul 06 Javascript
JS数组的常用10种方法详解
May 08 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入门学习笔记之一
2010/10/12 PHP
PHP面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
2013/02/22 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
详细介绍Python的鸭子类型
2016/09/12 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
大学生个人简历自我评价
2013/11/16 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
专科生就业求职信
2014/06/22 职场文书
房贷工资证明范本
2015/06/12 职场文书
Java中的随机数Random
2022/03/17 Java/Android
Python学习之迭代器详解
2022/04/01 Python
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS