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 去字符串空格终极版(支持utf8)
Nov 14 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
Apr 24 Javascript
jQuery Validate初步体验(一)
Dec 12 Javascript
基于JQuery实现分隔条的功能
Jun 17 Javascript
jquery 判断div show的状态实例
Dec 03 Javascript
jQuery对table表格进行增删改查
Dec 22 Javascript
ES6学习教程之对象的扩展详解
May 02 Javascript
bootstrap基本配置_动力节点Java学院整理
Jul 14 Javascript
基于JavaScript实现简单的音频播放功能
Jan 07 Javascript
Node.js API详解之 console模块用法详解
May 12 Javascript
浅析JavaScript预编译和暗示全局变量
Sep 03 Javascript
原生js实现俄罗斯方块
Oct 20 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 fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
分享几种比较简单实用的JavaScript tabel切换
2015/12/31 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
用Python生成器实现微线程编程的教程
2015/04/13 Python
Python工程师面试题 与Python Web相关
2016/01/14 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
Python对象属性自动更新操作示例
2018/06/15 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
pandas数据处理进阶详解
2019/10/11 Python
利用Python优雅的登录校园网
2020/10/21 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
如何进行Linux分区优化
2016/09/13 面试题
JS原生实现轮播图的几种方法
2021/03/23 Javascript
建筑专业毕业生推荐信
2013/11/21 职场文书
社区活动邀请函范文
2014/01/29 职场文书
学习礼仪心得体会
2014/09/01 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
2015年团队工作总结范文
2015/05/04 职场文书