JavaScript实现下拉列表


Posted in Javascript onJanuary 20, 2021

本文实例为大家分享了JavaScript实现下拉列表的具体代码,供大家参考,具体内容如下

这一次写了一个比较简单的下拉列表的实现,点击出现列表内容,再次点击列表消失,研究了很久,发现这种js写法确实比较好用。先看一下效果。

JavaScript实现下拉列表

直接上代码,js是主要写的部分,css是随意调试的,不过这个写法要用到css。

1、HTML部分的代码

<body>
<!--最外面的一层-->
<div class="outer">
<!-- 里面的-->
<div class="inner">
<h2>第一</h2>
 <ul>
  <li>a</li>
  <li>b</li>
  <li>c</li>
 </ul>
</div>

<div class="inner">
 <h2>第二</h2>
 <ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
 </ul>
</div>

<div class="inner">
 <h2>第二</h2>
 <ul>
  <li>4</li>
  <li>5</li>
  <li>6</li>
 </ul>
</div>

 <div class="inner">
  <h2>第二</h2>
  <ul>
   <li>7</li>
   <li>8</li>
   <li>9</li>
  </ul>
 </div>


<!-- 里面的-->
</div>
<!--最外面一层-->
</body>

2、css部分的代码

.outer{
   margin: 0 auto;
   width: 500px;
   height: 600px;
   border: 1px solid red;
  }
  .outer .inner{
   width: 500px;
   border: 1px solid red;

  }
  .outer .inner ul{
   list-style: none;
   border: 1px solid fuchsia;
  }
  h2{
   border: 1px solid blueviolet;
   height: 30px;
   display: flex;
   justify-content: center;
   cursor: pointer;
   background-color: #74a400;
   margin: 0;
  }
  ul{
   display: none;
   

  }
  
 
  这里.ul是HTML里面没有的,要通过js来添加
  .ul{
   display: block;
   background-color: cornflowerblue;
   margin: 0;
  }
  ul li{
   border: 1px solid cornflowerblue;
   background-color: darkgray;
   display: flex;
   justify-content: center;
   margin-left: -42px;
   cursor: pointer;

}

3、最重要的js代码部分

window.onload = function () {
  // 获取h2与ul
   var h2 = document.getElementsByTagName("h2");
   var ul = document.getElementsByTagName("ul");
   //对所有的h2绑定一个点击事件
   for (let i = 0; i <h2.length ; i++) {
    h2[i].index = i;
    h2[i].onclick = function () {
 //绑定的事件是如果和h2在同一级的ul没有classname的话,就给他的classname取名为ul,如果有的话,就给他的classname置为空。
 //通过css代码可以看到有一个.ul的部分是不起作用的,因为js还没有给相应的h2的classname改变,当点击h2的时候才会改变。
 //这个写法就是不直接改变css样式内容,而是通过改变名字来实现样式的转变,这样的话,一个样式就能被用好多次,不用重复一直写样式。
     if (ul[this.index].className == ""){
      ul[this.index].className = "ul";
     }else {
      ul[this.index].className = "";
     }
    }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript的键盘控制事件说明
Apr 15 Javascript
js中同步与异步处理的方法和区别总结
Dec 25 Javascript
js调试工具Console命令详解
Oct 21 Javascript
javascript判断变量是否有值的方法
Apr 20 Javascript
JavaScript实现的简单烟花特效代码
Oct 20 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
Oct 29 Javascript
微信小程序实现tab切换效果
Nov 21 Javascript
基于vue+canvas的excel-like组件实例详解
Nov 28 Javascript
js合并两个数组生成合并后的key:value数组
May 09 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
Jan 05 jQuery
使用jQuery实现掷骰子游戏
Oct 24 jQuery
js实现自定义右键菜单
May 18 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 #Vue.js
详解实现vue的数据响应式原理
Jan 20 #Vue.js
vue实现简易计算器功能
Jan 20 #Vue.js
vue使用过滤器格式化日期
Jan 20 #Vue.js
Vue实现简单计算器
Jan 20 #Vue.js
使用node-media-server搭建一个简易的流媒体服务器
Jan 20 #Javascript
vue实现验证用户名是否可用
Jan 20 #Vue.js
You might like
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
php中随机显示图片的函数代码
2011/06/23 PHP
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
php实现算术验证码功能
2018/12/05 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
jQuery plugin animsition使用小结
2017/09/14 jQuery
Js跳出两级循环方法代码实例
2020/09/22 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
详解Python中的文本处理
2015/04/11 Python
Python中的localtime()方法使用详解
2015/05/22 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
计算机专业优秀大学生自我总结
2014/01/21 职场文书
列车长先进事迹材料
2014/01/25 职场文书
境外导游求职信
2014/02/27 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书