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 相关文章推荐
JMenuTab简单使用说明
Mar 13 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
Jan 22 Javascript
javascript正则表达式中参数g(全局)的作用
Nov 11 Javascript
javascript中不等于的代码是什么怎么写
Dec 29 Javascript
javascript实现rgb颜色转换成16进制格式
Jul 10 Javascript
js调用webservice构造SOAP进行身份验证
Apr 27 Javascript
简单谈谈Vue 模板各类数据绑定
Sep 25 Javascript
AngularJS用户选择器指令实例分析
Nov 04 Javascript
angular2 ng build部署后base文件路径问题详细解答
Jul 15 Javascript
JavaScript格式化json和xml的方法示例
Jan 22 Javascript
ES6的异步终极解决方案分享
Jul 11 Javascript
Vue和React有哪些区别
Sep 12 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
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
php 地区分类排序算法
2013/07/01 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
js实现每日签到功能
2018/11/29 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
Python远程方法调用实现过程解析
2020/07/28 Python
python中uuid模块实例浅析
2020/12/29 Python
Python try except finally资源回收的实现
2021/01/25 Python
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
财务管理个人自荐书范文
2013/11/24 职场文书
少先队入队活动方案
2014/02/08 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
小学生作文评语集锦
2014/12/25 职场文书
自我工作评价范文
2015/03/06 职场文书
2015年质量月活动总结报告
2015/03/27 职场文书