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轻松实现无缝轮播效果
Mar 22 jQuery
Jquery-data的三种用法
Apr 18 jQuery
jQuery ajax请求struts action实现异步刷新
Apr 19 jQuery
JQuery实现图片轮播效果
May 08 jQuery
jQuery zTree树插件动态加载实例代码
May 11 jQuery
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
基于jquery trigger函数无法触发a标签的两种解决方法
Jan 06 jQuery
jquery动态添加以及遍历option并获取特定样式名称的option方法
Jan 29 jQuery
基于jQuery实现的设置文本区域的光标位置
Jun 15 jQuery
jQuery中使用validate插件校验表单功能
May 24 jQuery
9种方法优化jQuery代码详解
Feb 04 jQuery
jQuery列表动态增加和删除的实现方法
Nov 05 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作为Shell脚本语言使用
2006/10/09 PHP
php中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
一个PHP针对数字的加密解密类
2014/03/20 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
基于python调用psutil模块过程解析
2019/12/20 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
Solaris操作系统的线程机制
2015/07/28 面试题
给民警的表扬信
2014/01/08 职场文书
自主招生自荐信指南
2014/02/04 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
清扬洗发水广告词
2014/03/14 职场文书
小学教师寄语大全
2014/04/03 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python