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+html+css实现鼠标移动div实例
Jan 30 Javascript
js判断FCKeditor内容是否为空的两种形式
May 14 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
Nov 17 Javascript
javascript实现继承的简单实例
Jul 26 Javascript
第九章之路径分页标签与徽章组件
Apr 25 Javascript
jstree的简单实例
Dec 01 Javascript
js异步编程小技巧详解
Aug 14 Javascript
jQuery实现表格的增、删、改操作示例
Jan 27 jQuery
详解bootstrap-fileinput文件上传控件的亲身实践
Mar 21 Javascript
createObjectURL方法实现本地图片预览
Sep 30 Javascript
简单使用webpack打包文件的实现
Oct 29 Javascript
Vue设置长时间未操作登录自动到期返回登录页
Jan 22 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验证码(支持中文)
2007/02/14 PHP
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
python分割和拼接字符串
2013/11/01 Python
windows下ipython的安装与使用详解
2016/10/20 Python
深入浅析python 中的匿名函数
2018/05/21 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
python 实现矩阵按对角线打印
2019/11/29 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
Python count函数使用方法实例解析
2020/03/23 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
工伤私了协议书范本
2014/11/24 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫