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实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
jQuery实现frame之间互通的方法
Jun 26 jQuery
jquery ajaxfileupload异步上传插件
Nov 21 jQuery
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 jQuery
jQuery替换节点元素的操作方法
Mar 18 jQuery
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
May 31 jQuery
jQuery实现列表的增加和删除功能
Jun 14 jQuery
jQuery实现获取选中复选框的值实例详解
Jun 28 jQuery
jQuery模仿ToDoList实现简单的待办事项列表
Dec 30 jQuery
基于jQuery实现挂号平台首页源码
Jan 06 jQuery
jquery+ajax实现异步上传文件显示进度条
Aug 17 jQuery
Jquery 获取相同NAME 或者id删除行操作
Aug 24 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 flush类输出缓冲剖析
2008/10/19 PHP
PHP 常用函数库和一些实用小技巧
2009/01/01 PHP
php 连接mssql数据库 初学php笔记
2010/03/01 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
PHP实现文件上传与下载
2020/08/28 PHP
JavaScript Accessor实现说明
2010/12/06 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python实现Kmeans聚类算法
2020/06/10 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
贝佳斯官方网站:Borghese
2020/05/08 全球购物
护士自我鉴定范文
2013/10/06 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
企业员工集体活动方案
2014/08/17 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
户籍证明格式
2014/09/15 职场文书
汉语拼音教学反思
2016/02/22 职场文书