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 相关文章推荐
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
jQuery实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
jQuery EasyUI 组件加上“清除”功能实例详解
Apr 11 jQuery
jQuery Validate 无法验证 chosen-select元素的解决方法
May 17 jQuery
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
Jul 22 jQuery
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
jQuery动态添加li标签并添加属性和绑定事件方法
Feb 24 jQuery
jQuery中的for循环var与let的区别
Apr 21 jQuery
使用jQuery给Table动态增加行、清空table的方法
Sep 05 jQuery
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 jQuery
jQuery分组选择器简单用法示例
Apr 04 jQuery
Jquery Fade用法详解
Nov 06 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
php中如何防止表单的重复提交
2013/08/02 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
JavaScript 对象模型 执行模型
2009/12/06 Javascript
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
JavaScript中ES6 Babel正确安装过程
2016/07/18 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
python写的ARP攻击代码实例
2014/06/04 Python
python实现合并两个数组的方法
2015/05/16 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
秋季运动会表扬稿
2014/01/16 职场文书
优秀小学生家长评语
2014/01/30 职场文书
销售类求职信
2014/06/13 职场文书
敬老月活动总结
2014/08/28 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
2015年端午节活动方案
2015/05/05 职场文书
寻衅滋事罪辩护词
2015/05/21 职场文书
Pygame Draw绘图函数的具体使用
2021/11/17 Python