JS实战篇之收缩菜单表单布局


Posted in Javascript onDecember 10, 2016

获取节点的两种方式:

    1、通过event对象的srcElement属性;

    2、通过事件源对象用this传入。

代码如下:

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  <title>收缩菜单 · 表单布局</title>
  <script type="text/javascript">
    function list(dtNode){
      // var dtNode = event.srcElement;
      var dlNode = dtNode.parentNode;
      // alert(dtNode.nodeName+"---"+dlNode.nodeName);
      var dlNodes = document.getElementsByTagName("dl");
      // alert(dlNodes.length);
      for(var i=0; i<dlNodes.length; i++){
        if(dlNodes[i] == dlNode){
          /*判断当前标题是展开还是关闭状态,默认关闭,先执行else语句*/
          if(dlNode.className == "open"){
            dlNode.className = "close";
          }
          else{
            dlNode.className = "open";
          }
        }
        else{
          dlNodes[i].className = "close";
        }
      }
    }
  </script>
  <style type="text/css">
    dl{
      overflow: hidden;
      height: 18px;
    }
    .open{
      overflow: visible;
    }
    .close{
      overflow: hidden;
    }
  </style>
</head>
  <!-- 获取节点的两种方式:
  1、通过event对象的srcElement属性;
  2、通过事件源对象用this传入
 -->
<body>
  <!-- 事件源是dt,但是操作的是dl -->
  <dl>
    <dt onclick="list(this)">今天天气好晴朗</dt>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
  </dl>
  <dl>
    <dt onclick="list(this)">今天天气好晴朗</dt>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
  </dl>
  <dl>
    <dt onclick="list(this)">今天天气好晴朗</dt>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
  </dl>
  <dl>
    <dt onclick="list(this)">今天天气好晴朗</dt>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
  </dl>
  <dl>
    <dt onclick="list(this)">今天天气好晴朗</dt>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
  </dl>
  <dl>
    <dt onclick="list(this)">今天天气好晴朗</dt>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
  </dl>
  <dl>
    <dt onclick="list(this)">今天天气好晴朗</dt>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
    <dd>今天天气好晴朗</dd>
  </dl>
</body>
</html>
Javascript 相关文章推荐
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
Jan 11 Javascript
JS保存和删除cookie操作 判断cookie是否存在
Nov 13 Javascript
使用jQuery简单实现模拟浏览器搜索功能
Dec 21 Javascript
javascript实现移动端上的触屏拖拽功能
Mar 04 Javascript
Node.js文件操作方法汇总
Mar 22 Javascript
jQuery侧边栏实现代码
May 06 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
Jan 04 Javascript
js实现3d悬浮效果
Feb 16 Javascript
理解Angular的providers给Http添加默认headers
Jul 04 Javascript
AngularJs 延时器、计时器实例代码
Sep 16 Javascript
在vue中实现简单页面逆传值的方法
Nov 27 Javascript
15分钟上手vue3.0(小结)
May 20 Javascript
javascript动画之磁性吸附效果篇
Dec 09 #Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 #Javascript
详解自动生成博客目录案例
Dec 09 #Javascript
微信小程序之仿微信漂流瓶实例
Dec 09 #Javascript
JS判断是否手机或pad访问实现方法
Dec 09 #Javascript
js实现一个可以兼容PC端和移动端的div拖动效果实例
Dec 09 #Javascript
利用JS实现页面删除并重新排序功能
Dec 09 #Javascript
You might like
php截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
JS上传前预览图片实例
2013/03/25 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
深入解析JavaScript中的arguments对象
2016/06/12 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
2020/04/23 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
Python fileinput模块使用实例
2015/05/28 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
Python执行时间的几种计算方法
2020/07/31 Python
python将数据插入数据库的代码分享
2020/08/16 Python
python drf各类组件的用法和作用
2021/01/12 Python
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
幼师专业求职推荐信
2013/11/08 职场文书
体育教育专业毕业生自荐信
2013/11/15 职场文书
学校万圣节活动方案
2014/02/13 职场文书
开会通知短信大全
2015/04/20 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android