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 相关文章推荐
js获取html参数及向swf传递参数应用介绍
Feb 18 Javascript
JavaScript全排列的六种算法 具体实现
Jun 29 Javascript
动态的创建一个元素createElement及删除一个元素
Jan 24 Javascript
jQuery is()函数用法3例
May 06 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
Dec 10 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
May 25 Javascript
jquery插件EasyUI中form表单提交实例分享
Jan 11 Javascript
基于canvas实现的绚丽圆圈效果完整实例
Jan 26 Javascript
js仿腾讯QQ的web登陆界面
Aug 19 Javascript
微信小程序 实现tabs选项卡效果实例代码
Oct 31 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
Nov 29 Javascript
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
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插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
php实现文件编码批量转换
2014/03/10 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
深入浅析安装PhpStorm并激活的步骤详解
2020/09/17 PHP
基于jquery循环map功能的代码
2011/02/26 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
Django rest framework实现分页的示例
2018/05/24 Python
python实现播放音频和录音功能示例代码
2018/12/30 Python
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
质量工程师岗位职责
2013/11/16 职场文书
毕业自我鉴定书
2014/03/24 职场文书
亲子活动总结
2014/04/26 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
2014年就业工作总结
2014/11/26 职场文书
介绍信的格式
2015/01/30 职场文书
党员进社区活动总结
2015/05/07 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
小学六一主持词开场白
2015/05/28 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
师德培训心得体会2016
2016/01/09 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
KVM基础命令详解
2022/04/30 Servers