html 코드 코드 복사 코드는 다음과 같습니다. <머리> 试试 <br>var data = { <br>'1' : 'a001', <br>'2' : 'a002', <br>'3' : 'a003', <br>'4' : 'a004' , <br>'5' : 'a005', <br>'6' : 'a006' <br>}; <br>var data2 = { <br>'1' : { '101' : 'a101', '102' : 'a102', '103' : 'a103', '104' : 'a104' }, <br>'2' : { '201' : 'a201', '202' : 'a202', '203' : 'a203', '204' : 'a204' }, <br>'3' : { '301' : 'a301', '302' : 'a302', '303' : 'a303', '304' : 'a304' }, <br>'4' : { '401' : 'a401', '402' : 'a402', '403' : 'a403', '404' : 'a404' }, <br>'5' : { '501' : 'a501', '502' : 'a502', '503' : ' a503', '504' : 'a504' }, <br>'6' : { '601' : 'a601', '602' : 'a602', '603' : 'a603', '604' : 'a604 ' }, <br>'101' : { '10101' : 'a10101', '10102' : 'a10102', '10103' : 'a10103', '10104' : 'a10104' }, <br>'102' : { '10201' : 'a10201', '10202' : 'a10202', '10203' : 'a10203', '10204' : 'a10204' }, <br>'103' : { '10301' : 'a10301' , '10302' : 'a10302', '10303' : 'a10303', '10304' : 'a10304' }, <br>'104' : { '10401' : 'a10401', '10402' : 'a10402', '10403' : 'a10403', '10404' : 'a10404' }, <br>'201' : { '20101' : 'a20101', '20102' : 'a20102', '20103' : 'a20103', ' 20104' : 'a20104' }, <br>'202' : { '20201' : 'a20201', '20202' : 'a20202', '20203' : 'a20203', '20204' : 'a20204' }, <br>'203' : { '20301' : 'a20301', '20302' : 'a20302', '20303' : 'a20303', '20304' : 'a20304' }, <br>'204' : { '20401 ' : 'a20401', '20402' : 'a20402', '20403' : 'a20403', '20404' : 'a20404' }, <br>'301' : { '30101' : 'a30101', '30102' : 'a30102', '30103' : 'a30103', '30104' : 'a30104' }, <br>'302' : { '30201' : 'a30201', '30202' : 'a30202', '30203' : 'a30203', '30204' : 'a30204' }, <br>'303' : { '30301' : 'a30301', '30302' : 'a30302', '30303' : 'a30303', '30304' : ' a30304' }, <br>'304' : { '30401' : 'a30401', '30402' : 'a30402', '30403' : 'a30403', '30404' : 'a30404' }, <br>'401 ' : { '40101' : 'a40101', '40102' : 'a40102', '40103' : 'a40103', '40104' : 'a40104' }, <br>'402' : { '40201' : 'a40201 ', '40202' : 'a40202', '40203' : 'a40203', '40204' : 'a40204' }, <br>'403' : { '40301' : 'a40301', '40302' : 'a40302' , '40303' : 'a40303', '40304' : 'a40304' }, <br>'404' : { '40401' : 'a40401', '40402' : 'a40402', '40403' : 'a40403', '40404' : 'a40404' }, <br>'501' : { '50101' : 'a50101', '50102' : 'a50102', '50103' : 'a50103', '50104' : 'a50104' }, <br>'502' : { '50201' : 'a50201', '50202' : 'a50202', '50203' : 'a50203', '50204' : 'a50204' }, <br>'503' : { ' 50301' : 'a50301', '50302' : 'a50302', '50303' : 'a50303', '50304' : 'a50304' }, <br>'504' : { '50401' : 'a50401', '50402 ' : 'a50402', '50403' : 'a50403', '50404' : 'a50404' }, <br>'601' : { '60101' : 'a60101', '60102' : 'a60102', '60103' : 'a60103', '60104' : 'a60104' }, <br>'602' : { '60201' : 'a60201', '60202' : 'a60202', '60203' : 'a60203', '60204' : 'a60204' }, <br>'603' : { '60301' : 'a60301', '60302' : 'a60302', '60303' : 'a60303', '60304' : 'a60304' }, <br>' 604' : { '60401' : 'a60401', '60402' : 'a60402', '60403' : 'a60403', '60404' : 'a60404' } <br>}; <br>window.$ = function(id) { <br>if(typeof id == 'string') { <br>return document.getElementById(id); <br>} <br>ID 반환; <br>} <br>/**<br>* 이벤트 처리 도구 클래스 <br>* <br>* @author bao110908 <br>*/ <br>var Event = function(){} <br>Event = { <br>/**<br>* 이벤트 이벤트에 추가하려면 요소에 대한 핸들러 핸들러를 사용하십시오. <br>* IE 및 Firefox와 같은 브라우저와 호환됩니다. <br>* <br>* 예를 들어 botton 객체에 onclick 이벤트를 추가하려면 clickEvent를 사용하십시오. <br>* 프로그램 처리 메소드: <br>* Event.addEvent(botton, 'click', clickEvent) <br>* <br>* @param 요소 추가해야 할 이벤트의 객체(Object) <br>* @param event 추가해야 할 이벤트 이름(String), "on" 없음 <br>* 추가할 @param 핸들러 메서드 참조(Function) <br>*/ <br>addEvent : function( 요소, 이벤트, 핸들러) { <br>if(element.attachEvent) { <br>element.attachEvent('on' 이벤트, 핸들러); <br>} else if (element.addEventListener) { <br>element.addEventListener(event, handler, false); <br>} else { <br>요소['on' 이벤트] = 핸들러; <br>} <br>}, <br>/** <br>* 添加事件处理程序时,只能添加一个方法的引用,并不能给 <br>* 方法加上参数。예를 들어, clickEvent(str) 메소드를 정의하고 이제 <br>* 이를 obj의 onclick 이벤트 핸들러로 사용하려는 경우 다음을 사용할 수 있습니다. <br>* obj.onclick = Event.getFuntion(null, clickEvent , str) ; <br>*/ <br>getFunction : function(obj, fun) { <br>var args = []; <br>obj = obj || window; i < 인수.길이; i ) { <BR>args.push(arguments[i]); <BR>} <BR>return function() { <BR>fun.apply(obj, args); }; <BR>} <BR>} <BR>/**<BR>* 링크 처리 클래스<BR>* <BR>* @param first 첫 번째 선택의 ID <BR>* @param second 두 번째 선택의 ID <BR>* @param dataSet 두 번째 선택의 데이터 <BR>* <BR>* @author bao110908 <BR>*/ <BR>var Linkage = function(first, second) { <BR>this.first = $(first); .second = $(초); <BR>} <BR>/**<BR>* 첫 번째 선택 데이터 초기화 <BR>*/ <BR>Linkage.initFirst = function(first, dataSet) { <BR>var base = $(first); >base.options.length = 1; <BR>for(var k in dataSet) { <BR>var opt = new Option(dataSet[k], k) <BR>base.options[base.options.length] = 선택; <BR>} <BR>} <BR>Linkage.prototype = { <BR>// 초기화<BR>init : function() { <BR>this.addOnChange()}, <BR>// 첫 번째 선택에 대한 onchange 이벤트 추가 <BR>addOnChange: function() { <BR>Event.addEvent(this.first, 'change', Event.getFunction(this, this._onChangeEvent)) <BR>} , <BR>// onchange 이벤트 처리 <BR>_onChangeEvent: function() { <BR>this._defaultSelect() <BR>var data = this._getData(this.first.value) <BR>if(! data) { <BR>return; <BR>} <BR>this.second.options.length = 1 <BR>for(var k in data) { <BR>var opt = new Option(data[k], k) ; <BR>this.second.options[this.second.options.length] = opt; <BR>} <BR>}, <BR>// 데이터 가져오기, Ajax를 사용하는 경우 변경해야 함 <BR>/ / Ajax는 { '101' : {'101' : 'a101', '102', 'a102' }} 이러한 데이터 형식을 반환해야 합니다. <BR>// 그런 다음 eval('(' ajaxData ')')를 사용하세요. ; JSON 객체로 변환 <BR>_getData : function(value) { <BR>return data2[value] <BR>}, <BR>// 재선택 시 처리 <BR>_defaultSelect : function() { <BR> this .second.selectedIndex = 0; <BR>this.second.options.length = 1; <BR>if(this.second.fireEvent) { <BR>// IE <BR>this.second.fireEvent('onchange' ); <BR>} else { <BR>// DOM 2 <BR>var event = document.createEvent('HTMLEvents') <BR>event.initEvent('change', false, true); .second.dispatchEvent(event); <BR>} <BR>} <BR>} <BR>window.onload = function() { <BR>Linkage.initFirst('base1', data) <BR>var one = new Linkage('base1', 'base2'); <BR>one.init(); <BR>var two = new Linkage('base2', 'base3') <BR>two.init(); 🎜>} <BR> <br>* { <br>글꼴-크기: <br>글꼴-가족: "courier new "; <br>} <br>select { <br>width: 120px; <br>} <br> 레벨 1: -- 선택하세요-- 레벨 2: <이름 선택=" base2 " id="base2">-- 선택하세요-- 레벨 3:<이름 선택=" base3 " id="base3">-- 선택하세요--