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代码
Jan 01 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
Sep 06 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
Oct 29 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
Feb 21 Javascript
node.js中的fs.createReadStream方法使用说明
Dec 17 Javascript
JavaScript简介
Feb 15 Javascript
Express的路由详解
Dec 10 Javascript
JavaScript实现二分查找实例代码
Feb 22 Javascript
Js实现中国公民身份证号码有效性验证实例代码
May 03 Javascript
jquery实现提示语淡入效果
May 05 jQuery
vue实现tab切换外加样式切换方法
Mar 16 Javascript
微信小程序页面间传值与页面取值操作实例分析
Apr 30 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编程语言开发动态WAP页面
2006/10/09 PHP
source.php查看源文件
2006/12/09 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
div移动 输入框不能输入的问题
2009/11/19 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
基于jquery DOM写的类似微博发布的效果
2012/10/20 Javascript
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
详解React 条件渲染
2020/07/08 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
深入理解javascript中的this
2021/02/08 Javascript
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
python多进程共享变量
2016/04/06 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
python写一个随机点名软件的实例
2019/11/28 Python
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
协议书模板
2014/04/23 职场文书
合作协议书模板2014
2014/09/26 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
淘宝客服专员岗位职责
2015/04/07 职场文书
尊师重教主题班会
2015/08/14 职场文书