js模拟select控件
思路:
设置一个select容器,把select放在里面并且设置隐藏,放置一个存放选中的文本值,使用ul列表代替option。当列表元素触发click的时候设置对应的option设置选中,并且给select设置value
此次项目select控件是cms生成出来的从前端无法调整样式,所以只能考虑使用js模拟,代码匆忙中完成并未精简,如有更好的方案,还原共同讨论。
案例地址:
http://build2.baiwanx.com.cn/shtzwl201804111782/wsmxztz/index_145.html
具体代码:
HTML结构
<div class="select"><span class="placeholder">我是卖家</span><select id="18444" name="18444"><option value="">==请选择==</option><option value="我是卖家">我是卖家</option><option value="我是买家">我是买家</option></select><dl class="dl"></dl>
</div>
js代码
$('.select').each(function(){var placeholder = $(this).find(".placeholder"),list = $(this).find(".dl"),select = $(this).find("select"),item = select.find("option"),str = '';//获取select的列表组合作为ul的列表item.not(item.first()).each(function(i){str += "<dd value='" + $(this).attr("value") + "'>" + $(this).text() + "</dd>"});list.html(str);//初始化selectplaceholder.text(list.find("dd:first").text());item.eq(1).attr("selected","selected");select.attr("value",list.find("dd:first").attr("value"));
});//绑定click事件
$('.select').on('click', '.placeholder', function(e) {var parent = $(this).closest('.select');if (!parent.hasClass('is-open')) {parent.addClass('is-open');$('.select.is-open').not(parent).removeClass('is-open');} else {parent.removeClass('is-open');}e.stopPropagation();
}).on('click', 'dl>dd', function() { //列表绑定click事件var parent = $(this).closest('.select'),select = parent.find("select"),i = $(this).index();parent.removeClass('is-open').find('.placeholder').text($(this).text()).attr("value",$(this).attr("value"));select.attr("value",$(this).attr("value"));select.find("option").eq(i+1).attr("selected","selected");
});$('body').on('click', function() {$('.select.is-open').removeClass('is-open');
});
js模拟select控件相关推荐
- 菜单向上拉html,模拟select控件,CSS上拉菜单
模拟select控件,CSS下拉菜单 模拟select控件 html,body{height:100%;overflow:hidden;} body,div,form,h2,ul,li{margin: ...
- html下拉列表插件,js+CSS实现模拟华丽的select控件下拉菜单效果
本文实例讲述了js+CSS实现模拟select控件的下拉菜单效果.分享给大家供大家参考.具体如下: 这是一个JS+CSS技术实现的Select控件效果,模拟出来的,比默认的Select更漂亮,有了这个 ...
- jquery 操作服务端控件,select 控件
<asp:DropDownList ID="ddl" runat="server"></asp:DropDownList> <se ...
- 以编程方式在ASP.NET MVC中使用多个HTML Select控件
目录 介绍 使用代码 使用JQuery 使用Razor和C# 兴趣点 介绍 很多时候,我们使用JavaScript或JQuery代码来操纵HTML控件,却不知道ASP.NET MVC与Razor和C# ...
- 四种常见的浏览器内核简介----JS城市选择控件
一 四种常见的浏览器内核简介 Gecko: Gecko: Netscape6开始采用的内核,后来的Mozilla FireFox (火狐浏览器) 也采用了该内核,Gecko的特点是代码完全公开,因此, ...
- 仿苹果 html5 combox,模仿combox(select)控件,不用为美化select烦恼了。
模仿combox(select)控件,不用为美化select烦恼了. 来源:中文源码网 浏览: 次 日期:2018年9月2日 模仿combox(select)控件,不用为美化select烦 ...
- html 控件坐标定位,利用JS改变html控件位置
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 利用JS改变html控件位置 我想写一个贪吃蛇小游戏,所以需要完成蛇的自动移动效果,这就需要改变html控件位置.本来我 ...
- ocx js php,JS实现OCX控件的事件响应示例_javascript技巧
JS支持OCX控件的事件(event),当OCX控件定义的事件发生时,JS可以捕获该事件并对事件进行相应的处理. 个人理解,其实就是事件的响应由谁来完成,OCX控件自身肯定是可以实现的,JS提供的这种 ...
- JS给html控件赋值
<html> <head><title> JS给html控件赋值 </title><script language="javascrip ...
- JavaScript操作select控件
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
最新文章
- 深度学习 end2end
- 2、FreeRTOS任务相关API函数
- Android 图书总汇
- 【Linux系统编程】 Linux系统调用概述
- Nvidia CUDA初级教程6 CUDA编程一
- 每日一题(易错):哪些REPEAT_INTERVAL参数能够实现每30分钟运行job
- java 判断 继承接口_java基础-接口、继承、多态
- mongodb-Configuration
- 打算开源一个低代码平台,第三天,包含【工作流,业务流,财务,APQC】。技术站 React,typescript,java,mysql
- 隐藏隧道通信:Socks 隧道
- python报错: list object has no attribute shape的解决
- php邮箱必填,discuz关闭邮箱注册必填选项
- html如何转换成中文,html页面中如何将编码转换成中文的示例代码
- ElasticSearch设置字段的keyword属性
- 华东理工大学计算机专业研究生,华东理工大学硕士研究生培养方案计算机科学与技术一级学科(学科代码:0812)信息科学与工程学院...
- POCO C++库学习和分析 -- 序
- 新浪小编为你介绍留声机的古与今
- Adapter适配器与具体应用
- 有偏估计 无偏估计
- 什么是区块链?详细介绍区块链。