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 相关文章推荐
打开超链需要“确认”对话框的方法
Mar 08 Javascript
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
Apr 20 Javascript
javascript 三种编解码方式
Feb 01 Javascript
Jquery post传递数组方法实现思路及代码
Apr 28 Javascript
Angular2 环境配置详细介绍
Sep 21 Javascript
微信小程序request出现400的问题解决办法
May 23 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
Node.js中环境变量process.env的一些事详解
Oct 26 Javascript
深入剖析JavaScript instanceof 运算符
Jun 14 Javascript
Vue项目实现换肤功能的一种方案分析
Aug 28 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
Apr 01 Javascript
vue 二维码长按保存和复制内容操作
Sep 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 编程安全性小结
2010/01/08 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
JavaScript触发器详解
2007/03/10 Javascript
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
JavaScript CSS修改学习第五章 给“上传”添加样式
2010/02/19 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
从零学python系列之从文件读取和保存数据
2014/05/23 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
如何将python中的List转化成dictionary
2016/08/15 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
对python mayavi三维绘图的实现详解
2019/01/08 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
Python读取yaml文件的详细教程
2020/07/21 Python
5款实用的python 工具推荐
2020/10/13 Python
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
2014年防汛工作总结
2014/12/08 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
文明旅游倡议书
2015/04/28 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书