js实现select下拉框选择


Posted in Javascript onJanuary 11, 2020

最近在做一个项目需要兼容到ie不同版本,在使用select时遇到了各种问题。后来索性就自己使用原生js实现了这样一个下拉框,话不多说,直接上代码吧。

<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>自定义select</title>
</head>
<style>
  *{
    margin: 0;
    padding: 0;
  }
  #main{
    position: relative;
    width: 280px;
    height: 42px;
  }
  #content{
    width: 280px;
    height: 42px;
    line-height: 42px;
    padding-left: 10px;
    background: rgb(255, 255, 255);
    border-radius: 2px;
    border: 1px solid rgb(221, 221, 221);
    font-size: 16px;
    font-family: MicrosoftYaHei;
    color: rgb(51, 51, 51);
    cursor: pointer;
  }
  #selectImg{
    position: absolute;
    top:13px;
    right: 10px;
    cursor: pointer;
  }
  #selectItem{
    display: none;
    border: 1px solid #eee;
    width: 290px;
  }
  #selectItem ul{
    list-style: none;
  }
  #selectItem ul li{
    height: 30px;
    line-height: 30px;
    padding-left: 10px;
    cursor: pointer;
  }
  #selectItem ul li:hover{
    background-color:#f5f7fa;
  }
</style>
<body>
  <div id="main">
    <div id="content">

    </div>
    <img id="selectImg" src="./icon_select.png" alt="">
    <div id="selectItem">
    <!--  <ul>
        <li data-value="1">北京</li>
        <li data-value="2">上海</li>
        <li data-value="3">深圳</li>
      </ul>-->
    </div>
  </div>

</body>
<script>
  var data = [{name:'北京',value:'1'},{name:'上海',value:'2'},{name:'广州',value:'3'}]
  var content = document.getElementById('content');
  var selectImg = document.getElementById('selectImg');
  var selectItem = document.getElementById('selectItem');

  var ul = document.createElement('ul');
  selectItem.appendChild(ul);
  for(var i = 0; i < data.length; i++){
    var li = document.createElement('li');
    li.setAttribute('data-value',data[i].value);
    li.innerText = data[i].name;
    ul.appendChild(li);
  }
  /**
   * 点击下拉箭头
   */
  selectImg.onclick = function () {
    console.log(selectItem.style.display);
    if(selectItem.style.display == 'none' || selectItem.style.display == ''){
      selectItem.style.display = 'block';
    }else{
      selectItem.style.display = 'none';
    }

  }

  content.onclick = function () {
    if(selectItem.style.display == 'none' || selectItem.style.display == ''){
      selectItem.style.display = 'block';
    }else{
      selectItem.style.display = 'none';
    }
  }

  var lis = selectItem.getElementsByTagName('li');
  for(var i = 0; i < lis.length; i++){
    lis[i].onclick = function () {
      console.log(this.innerHTML,this.getAttribute('data-value'));
      content.innerText = this.innerHTML;
      selectItem.style.display = 'none';
    }
  }
</script>
</html>

效果图:

js实现select下拉框选择

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 学习笔记(十五)
Jan 28 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
Feb 02 Javascript
用javascript将数据导入Excel示例代码
Sep 10 Javascript
Javascript 闭包详解及实例代码
Nov 30 Javascript
canvas实现绘制吃豆鱼效果
Jan 12 Javascript
jQuery表格(Table)基本操作实例分析
Mar 10 Javascript
整理关于Bootstrap警示框的慕课笔记
Mar 29 Javascript
js阻止默认右键的下拉菜单方法
Jan 02 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
Jul 25 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
Sep 27 Javascript
零基础之Node.js搭建API服务器的详解
Mar 08 Javascript
swiper实现异形轮播效果
Nov 28 Javascript
js实现二级联动简单实例
Jan 11 #Javascript
jQuery实现轮播图效果demo
Jan 11 #jQuery
详解微信小程序中var、let、const用法与区别
Jan 11 #Javascript
jQuery擦除插件eraser使用方法详解
Jan 11 #jQuery
详解javascript中var与ES6规范中let、const区别与用法
Jan 11 #Javascript
jQuery实现鼠标移入显示蒙版效果
Jan 11 #jQuery
jQuery实现手风琴效果(蒙版)
Jan 11 #jQuery
You might like
长波知识介绍
2021/03/01 无线电
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
jQuery unbind 删除绑定事件详解
2016/05/24 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
Python内置数据类型详解
2014/08/18 Python
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
python编写分类决策树的代码
2017/12/21 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
python模拟菜刀反弹shell绕过限制【推荐】
2019/06/25 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
python实现UDP协议下的文件传输
2020/03/20 Python
python实现批量修改文件名
2020/03/23 Python
Python如何将函数值赋给变量
2020/04/28 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
英国领先的鞋类零售商:Shoe Zone
2018/12/13 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
CLR与IL分别是什么含义
2016/08/23 面试题
计算机专业应届毕业生自荐信
2013/09/26 职场文书
校园自助餐厅的创业计划书
2013/12/26 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS