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插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 jQuery
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
利用jQuery异步上传文件的插件用法详解
Jul 19 jQuery
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
jquery animate动画持续运动的实例
Nov 29 jQuery
jquery 实现拖动文件上传加载进度条功能
Mar 18 jQuery
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
Jun 14 jQuery
使用jQuery给Table动态增加行、清空table的方法
Sep 05 jQuery
jQuery实现购物车的总价计算和总价传值功能
Nov 28 jQuery
jQuery实现鼠标滑动切换图片
May 27 jQuery
JS JQuery获取data-*属性值方法解析
Sep 01 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下打开URL地址的几种方法小结
2010/05/16 PHP
PHP rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
js 实现 input type=&quot;file&quot; 文件上传示例代码
2013/08/07 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
JS获取当前时间的实例代码(昨天、今天、明天)
2018/11/13 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
Python读取properties配置文件操作示例
2018/03/29 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
Pycharm github配置实现过程图解
2020/10/13 Python
DHC中国官方购物网站:日本通信销售No.1化妆品
2016/08/20 全球购物
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
家长对孩子评语
2014/01/30 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
捐赠仪式主持词
2014/03/19 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
如何写新闻稿
2015/07/18 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
Android Rxjava3 使用场景详解
2022/04/07 Java/Android