JS实多级联动下拉菜单类,简单实现省市区联动菜单!

2019-06-02 21:02:30王旭

a_row["392"]=["基隆",34,1];
a_row["393"]=["台中",34,1];
a_row["394"]=["台南",34,1];
a_row["395"]=["新竹",34,1];
a_row["396"]=["嘉义",34,1];
a_row["397"]=["sss",285,1];
}
var j=0;
AddressTree["a_record"]=new Array();//存储记录的记录号
for(i in AddressTree["a_row"]){AddressTree["a_record"][j++]=i;}
AddressTree.ObjNumber=1;
//地址选择构造函数
function LightManAddressTree(){
  var Data = AddressTree; //数据记录数据变量
  this.noselectshow=["--请选择省份--","--请选择城市--","--请选择区县--"];//各级不选择显示值
  this.grade=0;  //级数
  this.idvalue=0; //地址选择值的id号
  this.text=""; //地址字符串
  this.listseparator=" "; //地址字符串中的分隔符号
  this.selectName="a_tree"+(AddressTree.ObjNumber++)+"_";
  //定义地址数据结束
  this.getfontpath =  function(id){ //取得指定记录号的上级路径
    var path = "",upid;
    try{
    upid=(isNaN(id)?0:id);
    while(upid!=0){
        var upid=Data["a_row"][upid][1];
        if(path!="")path=upid+","+path;else path=upid;
      }
    }
    catch(e){};
    return eval("["+path+"]");
  }
  //建立下列表
  this.selectshowlevel=function(obj,upid,def){
    var selectobj,optionobj,havedef;
    selectobj=document.getElementById(this.selectName+this.grade);
    if(selectobj){
      document.getElementById(this.selectName+this.grade).options.length=0;
    }else{
      selectobj=document.createElement("select");
      selectobj.id=this.selectName+this.grade;
      selectobj.grade=this.grade;
      selectobj.obj=this;
      selectobj.onchange=function(){
        if(this.options[this.selectedIndex].value!=""){
          this.obj.selectshow(obj,this[this.selectedIndex].value);
        }
        else{
         if(this.obj.grade>0){  
            for(var i=this.grade+1;i<this.obj.grade-1;i++){