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实现UrlEncode和UrlDecode的脚本代码
Jul 23 Javascript
TextArea不支持maxlength的解决办法(jquery)
Sep 13 Javascript
IE事件对象(The Internet Explorer Event Object)
Jun 27 Javascript
JavaScript函数模式详解
Nov 07 Javascript
bootstrap改变按钮加载状态
Dec 01 Javascript
Js为表单动态添加节点内容的方法
Feb 10 Javascript
Javascript 闭包详解及实例代码
Nov 30 Javascript
vue 源码解析之虚拟Dom-render
Aug 26 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
Dec 22 Javascript
Vuex模块化应用实践示例
Feb 03 Javascript
解决iView Table组件宽度只变大不变小的问题
Nov 13 Javascript
JavaScript 定时器详情
Nov 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下载远程文件类(支持断点续传)
2008/11/14 PHP
php设计模式 Composite (组合模式)
2011/06/26 PHP
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
php模板原理讲解
2013/11/13 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
python读取并写入mat文件的方法
2019/07/12 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
中学教师实习自我鉴定
2013/09/28 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python
一篇文章弄懂MySQL查询语句的执行过程
2021/05/07 MySQL
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS