//obj:主select菜单对象; //aspaddress:asp处理文件地址以及要传递的参数; //toobj:从select菜单对象; //firstxml:返回的第一个XML节点名; //secondxml:返回的第二个XML节点名; //toobjoptionlength:从select菜单对象初始option个数; //注意:在传递各个对象值得时候,尽量使用$(id),比如,传递地址中需要?id=obj.value时,地址最好改成?id=$(obj) //aspaddress,toobj后续联动中,这两个必选,后面不填将按照前面一个 function AjaxSelectOption(obj,aspaddress,toobj,firstxml,secondxml,toobjoptionlength) { var argus=arguments; var XmlHttp=new XMLHttpRequest(); if(typeof(obj)=="string"){obj=document.getElementById(obj);} aspaddress=aspaddress.replace(//$/(([^/)]+)/)/g,function($0,$1){return document.getElementById($1).value;}); toobjoptionlength=parseInt(toobjoptionlength); if(obj){aspaddress+=obj.value;} if (aspaddress.indexOf("?")==-1){aspaddress+="?"+Math.random();} else{aspaddress+="&"+Math.random();} XmlHttp.open("GET",aspaddress,true); XmlHttp.onreadystatechange=function() { if(XmlHttp.readyState==4&&XmlHttp.status==200) { var XmlDoc=XmlHttp.responseXML; var fxml=XmlDoc.getElementsByTagName(firstxml); var sxml=XmlDoc.getElementsByTagName(secondxml); var ajaxObj=document.getElementById(toobj); ajaxObj.options.length=toobjoptionlength; for (i=0;i<fxml.length;i++) { if (fxml[i] && sxml[i]) { ajaxObj.options.add(new Option(sxml[i].text,fxml[i].text,false,false)); //document.getElementById(toobj).options[i+toobjoptionlength].value=fxml[i].text; //document.getElementById(toobj).options[i+toobjoptionlength].text=sxml[i].text; } } } if (XmlHttp.readyState==4&&XmlHttp.status==200&&argus.length>7) { if (ajaxObj.value=='') { selectlength=toobjoptionlength for (i=7;i<argus.length;i+=5) { var selectobj,selectlength; selectobj=argus[i]; selectlength=argus.length>(i+3)?argus[(i+3)]==''?selectlength:argus[(i+3)]:selectlength; document.getElementById(selectobj).options.length=selectlength; } } else { var saspaddress=argus[6]; var stoobj=argus[7]; var sfirstxml=argus.length>8?argus[8]==''?firstxml:argus[8]:firstxml; var ssecondxml=argus.length>9?[9]==''?secondxml:argus[9]:secondxml; var stoobjoptionlength=argus.length>10?argus[10]==''?toobjoptionlength:argus[10]:toobjoptionlength; var runthis="AjaxSelectOption('"+toobj+"','"+saspaddress+"','"+stoobj+"','"+sfirstxml+"','"+ssecondxml+"',"+stoobjoptionlength for (i=11;i<argus.length;i++) { runthis+=",'"+argus[i]+"'"; } runthis+=")"; eval(runthis); } } } XmlHttp.send(null); }