var div=$("<div/>").attr("id","_contents"); document.writeln($("<span/>").append(div).html()); var doSelectObj=""; /** * @param {} obj//传值元素 */ function setTimeById(id){ var obj=document.getElementById(id); setTime(obj); } function setTime(obj){ doSelectObj=obj;//将传值进来的元素赋给一公共变量。 var setTop=obj.offsetTop;//距离上方或上层控件的位置,整型,单位像素。 var setLeft=obj.offsetLeft;//距离左方或上层控件的位置,整型,单位像素 var setWidth=obj.offsetWidth;//控件自身的宽度,整型,单位像素。 var setHeight=obj.offsetHeight;//控件自身的高度,整型,单位像素。 var clientHeight=obj.clientHeight;//控件本身的高。(内容可视区域的高度)。 /* * offsetParent属性返回一个对象的引用,这个对象是距离调用offsetParent的元素最近的(在包含层次中最靠近的),并且是已进行过CSS定位的容器元素。 * 如果这个容器元素未进行CSS定位, 则offsetParent属性的取值为根元素(在标准兼容模式下为html元素;在怪异呈现模式下为body元素)的引用。 * 当容器元素的style.display 被设置为 "none"时(译注:IE和Opera除外),offsetParent属性 返回 null。 */ while (obj.offsetParent) {//如果obj还有父类容器。 obj=obj.offsetParent;//重新给obj赋一个元素对象的引用(父类容器),则while会无限循环,一直取到页面的最外层。 setTop += obj.offsetTop; setLeft += obj.offsetLeft; } //省的数据。 var select1=$("<select/>").attr("id","_pro").attr("onChange","selectCity();"); var proId=0; $.ajax({ type: "post", url: "area_province.action", async:false,//默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 dataType:"json", success: function(data){ var list=data.list;//取得回调的省的list. //遍历list. $.each(list,function(key,value){ if(key==0){//第一条记录。(默认被选中哦) proId=value.id; } var areaName=value.areaName; var option=$("<option/>").val(areaName).append(areaName); select1.append(option); }); } }); //直辖市下的区,省下市 var select2=$("<select/>").attr("id","_city").attr("onChange","selectTown();"); var cityId=0; var areaType=0; $.ajax({ type: "post", url: "area_findCity.action", data:"parentId="+proId, async:false,//默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 dataType:"json", success: function(data){ var list=data.list;//取得回调的省的list. //遍历list. $.each(list,function(key,value){ if(key==0){//第一条记录。(默认被选中哦) cityId=value.id; areaType=value.areaType;//地区类型:0,国家。1,直辖市。2,省。3,直辖市下的区。4,省下市。5,市下区(县) } var areaName=value.areaName; var option=$("<option/>").val(areaName).append(areaName); select2.append(option); }); } }); //市下的区 var select3=$("<select/>").attr("id","_town").hide();//默认为隐藏。 if(areaType==4){ $.ajax({ type: "post", url: "area_findCity.action", data:"parentId="+cityId, async:false,//默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 dataType:"json", success: function(data){ var list=data.list;//取得回调的省的list. //遍历list. $.each(list,function(key,value){ var areaName=value.areaName; var option=$("<option/>").val(areaName).append(areaName); select3.append(option); }); } }); select3.show();//让select3显示。 } var top=setTop+clientHeight+4;//定义要显示的DIV的top。 //定义DIV的CSS串。 var styleValue="padding:6px; background-color:#E3E3E3; font-size: 12px; border: 1px solid #777777; position:absolute; z-index:1; visibility:visible;"; styleValue+="top:"+top+"px; left:"+setLeft+"px"; var button=$("<input/>").attr("type","button").attr("style","font-size:12px").attr("value","确定").attr("onClick","doSelect();"); var span=$("<span/>").append(select1,select2,select3,button); $("#_contents").html(span.html()).attr("style",styleValue); } function doSelect() { value=$("#_pro").val()+$("#_city").val(); if($("#_town").val()!=null){ value+=$("#_town").val(); } doSelectObj.value=value; document.getElementById("_contents").style.visibility = "hidden"; } //查询市 或直辖市的区。 function selectCity(){ var parentName=$("#_pro").val(); var select2=$("#_city") select2.html("");//清空 $.post("area_findAreaByName.action",{parentName:parentName},function(data){ var list=data.list;//取得回调的省的list. //遍历list. $.each(list,function(key,value){ if(key==0){//第一条记录。(默认被选中哦) cityId=value.id; areaType=value.areaType;//地区类型:0,国家。1,直辖市。2,省。3,直辖市下的区。4,省下市。5,市下区(县) } var areaName=value.areaName; var option=$("<option/>").val(areaName).append(areaName); select2.append(option); }); selectTown();查询市下的区 },"json"); } //查询市下的区 function selectTown(){ var parentName=$("#_city").val(); var select3=$("#_town"); select3.html("");//清空 $.post("area_findAreaByName.action",{parentName:parentName},function(data){ var list=data.list;//取得回调的省的list. if(list!=null){ //遍历list. $.each(list,function(key,value){ if(key==0){//第一条记录。(默认被选中哦) cityId=value.id; areaType=value.areaType;//地区类型:0,国家。1,直辖市。2,省。3,直辖市下的区。4,省下市。5,市下区(县) } var areaName=value.areaName; var option=$("<option/>").val(areaName).append(areaName); select3.append(option); }); select3.show(); }else{ select3.hide(); } },"json"); }