jQuery實(shí)現(xiàn)動態(tài)加載select下拉列表項(xiàng)功能示例
本文實(shí)例講述了jQuery實(shí)現(xiàn)動態(tài)加載select下拉列表項(xiàng)功能。分享給大家供大家參考,具體如下:
需求說明:
以前使用的select下拉列表都是靜態(tài)的,select 的option數(shù)據(jù)都是寫死的?,F(xiàn)在項(xiàng)目中的select需要根據(jù)不同的場景使用不同的數(shù)據(jù),解決方式就是動態(tài)加載option數(shù)據(jù)。
代碼部分:
下面步驟介紹了如何從數(shù)據(jù)庫獲取數(shù)據(jù),并動態(tài)的在前端顯示。
步驟一:jsp頁面靜態(tài)的select:
<div> <select id="selectSM"> <option>選擇A</option> <option>選擇B</option> <option>選擇C</option> </select> </div>
注意:
1、靜態(tài)的select在某些場景下使用是沒有問題的。但是在產(chǎn)品不同的需求時(shí),動態(tài)select更能勝任其多樣性。
2、select有多種寫法,這里是最簡單的。
步驟二:jQuery通過ajax請求獲取動態(tài)的數(shù)據(jù),并在jsp頁面顯示。
function IninDepart(){ $("#selectSM").remove();//清空select列表數(shù)據(jù) var state = 1; $.ajax({ type : "POST", url : "<%=basePath%>/getItemDepartList.do", dataType : "JSON", data : {}, success : function(msg) { $("#selectSM").prepend("<option value='0'>請選擇</option>");//添加第一個(gè)option值 for (var i = 0; i < msg.rows.length; i++) { //如果在select中傳遞其他參數(shù),可以在option 的value屬性中添加參數(shù) //$("#selectSM").append("<option value='"+msg.rows[i].id+"'>"+msg.rows[i]+"</option>"); $("#selectSM").append("<option>"+msg.rows[i]+"</option>"); } },error:function(){ alertLayer("獲取數(shù)據(jù)失敗","error"); } }); }
注意:這里使用的是jQuery、ajax,其他方式也可以實(shí)現(xiàn)。
步驟三:后臺數(shù)據(jù)的處理。
public JSONObject getItemDepartList(HttpServletRequest request) throws Exception{ //查詢select數(shù)據(jù) List<Map<String, Object>> list = appServices.getAppList(); System.out.println("list::::::::" + list); //獲取數(shù)據(jù)存放到數(shù)組 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); } } //去除數(shù)組中重復(fù)數(shù)據(jù),存放到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; }
注意:由于后臺返回?cái)?shù)據(jù)的問題,需要對數(shù)據(jù)進(jìn)行截取并去除重復(fù)數(shù)據(jù)。如果沒有這個(gè)需求,可以直接向前端返回一個(gè)數(shù)組或list即可。下面是不同數(shù)據(jù)的控制臺輸出:
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查詢語句,這里是把不同字段的值進(jìn)行拼接,返回到controller中的list中。
SELECT GROUP_CONCAT(DISTINCT CONCAT(字段名稱)) AS 字段名稱或別名 FROM 表名
步驟五:這里捎帶說一下,如何獲取select下拉列表選擇的值
//select 的change事件用了獲取下拉列表的值 $(document).on("change","#selectSM",function(){ //獲取選擇的值 var condition = $(this).val(); //其他操作 });
總結(jié):
不同的需求對應(yīng)著不同的數(shù)據(jù)處理和顯示方式。以及不同的代碼實(shí)現(xiàn)方式這里介紹我自己的觀點(diǎn)。
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery表單(form)操作技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery切換特效與技巧總結(jié)》、《jQuery遍歷算法與技巧總結(jié)》、《jQuery常見經(jīng)典特效匯總》、《jQuery動畫與特效用法總結(jié)》及《jquery選擇器用法總結(jié)》
希望本文所述對大家jQuery程序設(shè)計(jì)有所幫助。
- jQuery實(shí)現(xiàn)動態(tài)顯示select下拉列表數(shù)據(jù)的方法
- jQuery實(shí)現(xiàn)列表內(nèi)容的動態(tài)載入特效
- 基于jQuery和Bootstrap框架實(shí)現(xiàn)仿知乎前端動態(tài)列表效果
- jQuery動態(tài)產(chǎn)生select option下拉列表
- jQuery簡單實(shí)現(xiàn)向列表動態(tài)添加新元素的方法示例
- jQuery實(shí)現(xiàn)動態(tài)生成年月日級聯(lián)下拉列表示例
- 如何使用Jquery動態(tài)生成二級選項(xiàng)列表
- jQuery列表動態(tài)增加和刪除的實(shí)現(xiàn)方法
相關(guān)文章
Jquery動態(tài)添加及刪除頁面節(jié)點(diǎn)元素示例代碼
這篇文章主要介紹了Jquery如何動態(tài)添加及刪除頁面節(jié)點(diǎn)元素,示例代碼如下,需要的朋友不要錯(cuò)過2014-06-06jquery ztree實(shí)現(xiàn)模糊搜索功能
這篇文章主要為大家詳細(xì)介紹了jquery ztree實(shí)現(xiàn)模糊搜索功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02使用jQuery給input標(biāo)簽設(shè)置默認(rèn)值
這篇文章主要介紹使用jQuery給input標(biāo)簽設(shè)置默認(rèn)值的方法,實(shí)例講解,非常實(shí)用,需要的朋友可以參考下。2016-06-06推薦40款強(qiáng)大的 jQuery 導(dǎo)航插件和教程(上篇)
在下面的集合中,你會發(fā)現(xiàn)很多便利的 jQuery 導(dǎo)航插件和有用的教程,幫助你實(shí)現(xiàn)充滿吸引力的網(wǎng)站導(dǎo)航,讓你網(wǎng)站更有組織性和交互性2012-09-09

一句jQuery代碼實(shí)現(xiàn)返回頂部效果(簡單實(shí)用)

jQuery EasyUI API 中文文檔 - Draggable 可拖拽

jQuery bt氣泡實(shí)現(xiàn)懸停顯示及移開隱藏功能的方法