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读取ASP设定的COOKIE
Feb 15 Javascript
jquery URL参数判断,确定菜单样式
May 31 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
Feb 27 Javascript
jquery的ajax请求全面了解
Mar 20 Javascript
jQuery实现的动态伸缩导航菜单实例
May 07 Javascript
JavaScript实现将文本框的值插入指定位置的方法
Aug 13 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
Oct 30 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
Nov 09 jQuery
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
在vue项目中使用Jquery-contextmenu插件的步骤讲解
Jan 27 jQuery
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
Webpack 4如何动态切割JS注入文件名详解
Jul 09 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
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
php 使用array函数实现分页
2015/02/13 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
详解Python在七牛云平台的应用(一)
2017/12/05 Python
selenium+python环境配置教程详解
2019/05/28 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
超市业务员岗位职责
2013/12/05 职场文书
迷你西餐厅创业计划书范文
2013/12/31 职场文书
创先争优制度
2014/01/21 职场文书
小学防溺水制度
2014/01/29 职场文书
酒店总经理助理岗位职责
2014/02/01 职场文书
环境日宣传活动总结
2014/07/09 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
行政撤诉申请书
2015/05/18 职场文书
2016年端午节寄语
2015/12/04 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android