jQuery实现动态加载select下拉列表项功能示例


Posted in jQuery onMay 31, 2018

本文实例讲述了jQuery实现动态加载select下拉列表项功能。分享给大家供大家参考,具体如下:

需求说明:

以前使用的select下拉列表都是静态的,select 的option数据都是写死的。现在项目中的select需要根据不同的场景使用不同的数据,解决方式就是动态加载option数据。

代码部分:

下面步骤介绍了如何从数据库获取数据,并动态的在前端显示。

步骤一:jsp页面静态的select:

<div>
 <select id="selectSM">
  <option>选择A</option>
  <option>选择B</option>
  <option>选择C</option>
 </select>
</div>

注意:

1、静态的select在某些场景下使用是没有问题的。但是在产品不同的需求时,动态select更能胜任其多样性。

2、select有多种写法,这里是最简单的。

步骤二:jQuery通过ajax请求获取动态的数据,并在jsp页面显示。

function IninDepart(){
 $("#selectSM").remove();//清空select列表数据
 var state = 1;
 $.ajax({
  type : "POST",
  url : "<%=basePath%>/getItemDepartList.do",
  dataType : "JSON",
  data : {},
 success : function(msg)
 {
  $("#selectSM").prepend("<option value='0'>请选择</option>");//添加第一个option值
  for (var i = 0; i < msg.rows.length; i++) {
  //如果在select中传递其他参数,可以在option 的value属性中添加参数
  //$("#selectSM").append("<option value='"+msg.rows[i].id+"'>"+msg.rows[i]+"</option>");
  $("#selectSM").append("<option>"+msg.rows[i]+"</option>");
 }
 },error:function(){
 alertLayer("获取数据失败","error");
 }
 });
}

注意:这里使用的是jQuery、ajax,其他方式也可以实现。

步骤三:后台数据的处理。

public JSONObject getItemDepartList(HttpServletRequest request) throws Exception{
 //查询select数据
 List<Map<String, Object>> list = appServices.getAppList();
 System.out.println("list::::::::" + list);
 //获取数据存放到数组
 String[] depart = null;
 for (Map<String, Object> map : list) {
  for (String k : map.keySet()) {
   depart = ((String) map.get(k)).split(",");
   System.out.println("depart::::::::" + depart);
  }
 }
 //去除数组中重复数据,存放到list
 List<String> strList = new ArrayList<String>();
 for (int i=0; i<depart.length; i++) {
  if(!strList.contains(depart[i])) {
   strList.add(depart[i]);
  }
 }
 System.out.println("strList::::::::" + strList);
 jsonObject.put("rows", strList);
 return jsonObject;
}

注意:由于后台返回数据的问题,需要对数据进行截取并去除重复数据。如果没有这个需求,可以直接向前端返回一个数组或list即可。下面是不同数据的控制台输出:

list::::::::[{service_depart=A,B,C,D,E,A,C,D,D,E}]
depart::::::::[Ljava.lang.String;@41fc702b
strList::::::::[A, B, C, D, E]

步骤四:sql查询语句,这里是把不同字段的值进行拼接,返回到controller中的list中。

SELECT GROUP_CONCAT(DISTINCT CONCAT(字段名称)) AS 字段名称或别名 FROM 表名

步骤五:这里捎带说一下,如何获取select下拉列表选择的值

//select 的change事件用了获取下拉列表的值
$(document).on("change","#selectSM",function(){
  //获取选择的值
  var condition = $(this).val();
  //其他操作
});

总结:

不同的需求对应着不同的数据处理和显示方式。以及不同的代码实现方式这里介绍我自己的观点。

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
Mar 23 jQuery
jquery加载单文件vue组件的方法
Jun 20 jQuery
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
jQuery实现用户信息表格的添加和删除功能
Sep 12 jQuery
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
jquery动态添加以及遍历option并获取特定样式名称的option方法
Jan 29 jQuery
jQuery插件Validation表单验证详解
May 26 jQuery
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
jQuery简单实现根据日期计算星期几的方法
Jan 09 jQuery
jQuery+ajax实现文件上传功能
Dec 22 jQuery
webpack里使用jquery.mCustomScrollbar插件的方法
May 30 #jQuery
jQuery 导航自动跟随滚动的实现代码
May 30 #jQuery
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 #jQuery
关于jquery中attr()和prop()方法的区别
May 28 #jQuery
jQuery中将json数据显示到页面表格的方法
May 27 #jQuery
jQuery插件jsonview展示json数据
May 26 #jQuery
jQuery插件Validation表单验证详解
May 26 #jQuery
You might like
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
js实现登录验证码
2016/12/22 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
2018/01/30 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
python破解zip加密文件的方法
2018/05/31 Python
python 反向输出字符串的方法
2018/07/16 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
体育教育毕业生自荐信
2013/11/21 职场文书
《在山的那边》教学反思
2014/02/23 职场文书
体育专业求职信
2014/07/16 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
停电调休通知
2015/04/16 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
2019秋季运动会口号
2019/06/25 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
Python基础之tkinter图形化界面学习
2021/04/29 Python