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 相关文章推荐
jQuery UI 应用不同Theme的办法
Sep 12 Javascript
基于jQuery的仿flash的广告轮播
Nov 05 Javascript
js 获取计算后的样式写法及注意事项
Feb 25 Javascript
使用firebug进行调试javascript的示例
Dec 16 Javascript
浅谈javascript中this在事件中的应用
Feb 15 Javascript
js实现input框文字动态变换显示效果
Aug 19 Javascript
js实现网页收藏功能
Dec 17 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
Sep 18 Javascript
JS中Object对象的原型概念基础
Jan 29 Javascript
详解vue组件基础
May 04 Javascript
微信小程序使用npm包的方法步骤
Aug 13 Javascript
vue实现点击按钮下载文件功能
Oct 11 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实现模仿socket请求返回页面的方法
2014/11/04 PHP
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
ajax异步请求详解
2017/01/06 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
详解node中创建服务进程
2017/05/09 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
Vue data的数据响应式到底是如何实现的
2020/02/11 Javascript
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
python的range和linspace使用详解
2019/11/27 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
2014自主招生自荐信策略
2014/01/27 职场文书
保密承诺书范文
2014/03/27 职场文书
动物科学专业求职信
2014/07/27 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
新闻人物通讯稿
2014/10/09 职场文书
表扬稿范文
2015/01/17 职场文书
大学生活感想
2015/08/10 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android