js实现select下拉框选择
更新时间:2020年01月11日 12:42:52 作者:zhang070514
这篇文章主要为大家详细介绍了js实现select下拉框选择,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
最近在做一个项目需要兼容到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>
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
.net MVC+Bootstrap下使用localResizeIMG上传图片
这篇文章主要为大家详细介绍了.net MVC和Bootstrap下使用 localResizeIMG上传图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-04-04一个简单但常用的javascript表格样式_鼠标划过行变色 简洁实现
经常性的会需要使用表格显示一些东西,当表格比较大的时候一眼望去脑袋可能会有些晕,经常性的因为没看准行而出现误操作,一般解决办法是交替行变行或者鼠标划过行变色2008-09-09console.log()与console.dir()的区别及说明
这篇文章主要介绍了console.log()与console.dir()的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01使用contextMenu插件实现Bootstrap table弹出右键菜单
如今Bootstrap这个前端框架已被许多人接受并应用在不同的项目中,其中“开发高效,设备兼容”的特点表现得非常明显。这篇文章主要介绍了使用contextMenu插件实现Bootstrap table弹出右键菜单,需要的朋友可以参考下2017-02-02JS Html转义和反转义(html编码和解码)的实现与使用方法总结
这篇文章主要介绍了JS Html转义和反转义(html编码和解码)的实现与使用方法,结合实例形式总结分析了JS Html转义和反转义、html编码和解码相关封装类定义与具体使用技巧,需要的朋友可以参考下2020-03-03ES6 javascript中class类的get与set用法实例分析
这篇文章主要介绍了ES6 javascript中class类的get与set用法,结合具体实例形式分析了ES6中类的get与set关键字使用方法,需要的朋友可以参考下2017-10-10
最新评论