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 相关文章推荐
js中查找最近的共有祖先元素的实现代码
Dec 30 Javascript
Javascript中typeof 用法小结
May 12 Javascript
简述AngularJS的控制器的使用
Jun 16 Javascript
浅析jquery与checkbox的checked属性的问题
Apr 27 Javascript
JS简单判断函数是否存在的方法
Feb 13 Javascript
详解angularjs利用ui-route异步加载组件
May 21 Javascript
JS从非数组对象转数组的方法小结
Mar 26 Javascript
JS实现图片切换效果
Nov 17 Javascript
vue车牌号校验和银行校验实战
Jan 23 Javascript
IE11下处理Promise及Vue的单项数据流问题
Jul 24 Javascript
vue组件命名和props命名代码详解
Sep 01 Javascript
vue项目中极验验证的使用代码示例
Dec 03 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
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
php实现微信模板消息推送
2018/03/30 PHP
document.compatMode介绍
2009/05/21 Javascript
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
python实现停车管理系统
2018/11/30 Python
python+pyqt5编写md5生成器
2019/03/18 Python
使用pandas读取文件的实现
2019/07/31 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
python计算无向图节点度的实例代码
2019/11/22 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
pytorch实现查看当前学习率
2020/06/24 Python
塔吉特百货公司官网:Target
2017/04/27 全球购物
美国批发供应商:Kole Imports
2019/04/10 全球购物
个人实用简单的自我评价
2013/10/19 职场文书
跟单文员的岗位职责
2013/11/14 职场文书
公司人力资源的自我评价
2014/01/02 职场文书
垃圾桶标语
2014/06/24 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
浅谈Python魔法方法
2021/06/28 Java/Android
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL