zoukankan      html  css  js  c++  java
  • Jquery Select 插件 lyhucSelect 数据联动

    数据源:
     

    View Code

    var areaInfo = new Array();
    areaInfo[
    0] = new Array();
    areaInfo[
    0][0]="1";
    areaInfo[
    0][1]="Beijing";
    areaInfo[
    0][2]="0";
    areaInfo[
    0][3]="0";
    areaInfo[
    1] = new Array();
    areaInfo[
    1][0]="2";
    areaInfo[
    1][1]="Shanghai";
    areaInfo[
    1][2]="0";
    areaInfo[
    1][3]="0";
    areaInfo[
    2] = new Array();
    areaInfo[
    2][0]="3";
    areaInfo[
    2][1]="Jing'an";
    areaInfo[
    2][2]="2";
    areaInfo[
    2][3]="0";
    areaInfo[
    3] = new Array();
    areaInfo[
    3][0]="4";
    areaInfo[
    3][1]="Changning";
    areaInfo[
    3][2]="2";
    areaInfo[
    3][3]="0";
    areaInfo[
    4] = new Array();
    areaInfo[
    4][0]="5";
    areaInfo[
    4][1]="Luwan";
    areaInfo[
    4][2]="2";
    areaInfo[
    4][3]="0";
    areaInfo[
    5] = new Array();
    areaInfo[
    5][0]="6";
    areaInfo[
    5][1]="Huangp";
    areaInfo[
    5][2]="2";
    areaInfo[
    5][3]="0";
    areaInfo[
    6] = new Array();
    areaInfo[
    6][0]="7";
    areaInfo[
    6][1]="Pudong";
    areaInfo[
    6][2]="2";
    areaInfo[
    6][3]="0";
    areaInfo[
    7] = new Array();
    areaInfo[
    7][0]="8";
    areaInfo[
    7][1]="Minhang";
    areaInfo[
    7][2]="2";
    areaInfo[
    7][3]="0";
    areaInfo[
    8] = new Array();
    areaInfo[
    8][0]="9";
    areaInfo[
    8][1]="Qingpu";
    areaInfo[
    8][2]="2";
    areaInfo[
    8][3]="0";
    areaInfo[
    9] = new Array();
    areaInfo[
    9][0]="10";
    areaInfo[
    9][1]="Hongkou";
    areaInfo[
    9][2]="2";
    areaInfo[
    9][3]="0";
    areaInfo[
    10] = new Array();
    areaInfo[
    10][0]="11";
    areaInfo[
    10][1]="Zhabei";
    areaInfo[
    10][2]="2";
    areaInfo[
    10][3]="0";
    areaInfo[
    11] = new Array();
    areaInfo[
    11][0]="12";
    areaInfo[
    11][1]="Putuo";
    areaInfo[
    11][2]="2";
    areaInfo[
    11][3]="0";
    areaInfo[
    12] = new Array();
    areaInfo[
    12][0]="13";
    areaInfo[
    12][1]="Yangpu";
    areaInfo[
    12][2]="2";
    areaInfo[
    12][3]="0";
    areaInfo[
    13] = new Array();
    areaInfo[
    13][0]="14";
    areaInfo[
    13][1]="Others";
    areaInfo[
    13][2]="2";
    areaInfo[
    13][3]="0";
     
    jquery.lyhucSelect.js

     
    (function($) {
         $.fn.lyhucSelect = function(options) {
    	
    		var element     = this;
    		var elementid     =  "#" + element[0].id;
    		
    		 var defaults = {
    			dataSource:{},
    			subSelect:'#subcategory',
    			option:{text:'--Select--',value:''},
    			value:'0',
    			parentid:0
    		};
    		
    		var options = $.extend(defaults, options);
    		var defaultoption = new Option();
    		var defaultsuboption = new Option();
    
    		(function init(){
    			defaultoption.text=options.option.text;
    			defaultoption.value=options.option.value;
    			$(elementid).append(defaultoption);
    			
    			defaultsuboption.text=options.option.text;
    			defaultsuboption.value=options.option.value;
    			$(options.subSelect).append(defaultsuboption);
    			
    			$(options.dataSource).each(function(i){
    				var id=options.dataSource[i][0];
    				var mc=options.dataSource[i][1];
    				
    				if(options.parentid==options.dataSource[i][2])
    				{
    					var newoption = new Option();
    					newoption.value=id;
    					newoption.text=mc;
    					$(elementid).append(newoption);
    				}
    			});
    		
    		})();
    				
    		return this.each(function(){
    				
    				$(this).bind("change",function(e){
    					var currentVal=$(this).val();
    					var tmpDepth=0;
    					
    					$(options.subSelect).empty();
    					
    					$(options.dataSource).each(function(i){
    						
    						var id=options.dataSource[i][0];
    						var mc=options.dataSource[i][1];
    						
    						if(currentVal==options.dataSource[i][2])
    						{
    							var newoption = new Option();
    							newoption.value=id;
    							newoption.text=mc;
    							$(options.subSelect).append(newoption);
    							tmpDepth++;
    						}
    					});
    					
    					if(tmpDepth==0)
    					{
    						var parentoption = new Option();
    						parentoption.value=$(elementid).val();
    						parentoption.text=$(elementid).find('option:selected').text();
    						$(options.subSelect).append(parentoption);
    					}
    					
    				});
    				
    			});
    
        };
    	
    
    })(jQuery);
    
     
     调用:
    $('#cityCategory').lyhucSelect({dataSource:areaInfo,subSelect:'#areCategory'});
    效果:

  • 相关阅读:
    CArray类模板封装示例
    环形队列CQueue类模板示例
    CStack栈模板封装示例
    TSIC506驱动程序
    proteus虚拟串口实现
    js学习笔记(一)
    提升网页性能
    JS性能优化笔记搜索整理
    @font-face制作Web Icon
    原生js动画效果(源码解析)
  • 原文地址:https://www.cnblogs.com/hubj/p/1998284.html
Copyright © 2011-2022 走看看