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 Masonry瀑布流布局神器使用详解
May 25 jQuery
jquery.validate.js 多个相同name的处理方式
Jul 10 jQuery
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
jquery radio 动态控制选中失效问题的解决方法
Feb 28 jQuery
基于jQuery实现的设置文本区域的光标位置
Jun 15 jQuery
jQuery pagination分页示例详解
Oct 23 jQuery
Vue CLI3.0中使用jQuery和Bootstrap的方法
Feb 28 jQuery
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
jquery传参及获取方式(两种方式)
Feb 13 jQuery
jquery+css3实现的经典弹出层效果示例
May 16 jQuery
jQuery+ThinkPHP实现图片上传
Jul 23 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
国内咖啡文化
2021/03/03 咖啡文化
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
PHP不用递归遍历目录下所有文件的代码
2014/07/04 PHP
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
python下如何让web元素的生成更简单的分析
2008/07/17 Python
python网页请求urllib2模块简单封装代码
2014/02/07 Python
Python中matplotlib中文乱码解决办法
2017/05/12 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
工程班组长岗位职责
2013/12/30 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
大学生操行评语大全
2014/12/31 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
Ajax实现异步加载数据
2021/11/17 Javascript