jquery 遍历问题【在线等】 本帖最后由 dschencds 于 2014-09-05 12:48:12 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 起过局部变量试试,$.ajax方法回调完后,其回调参数生命周期也就Over了。function getCity(){ //var parentCode=provinceCode; var parentCode="440000"; var url = "${contextPath}<eoms:constant fieldName='QUERY_BAS_CODE_QUERY_CITY_URL' shortClassName='Url'></eoms:constant>"; var y=0; var str1=''; $.ajax( { type:"post", url : url+".json", dataType : "json", data:{"parentCode":parentCode}, success:function(date) { var cityList=date.cityList; $(cityList).each(function(){ str+='<input name="" type="checkbox" value="'+this.CODE+'">'+this.NAME+''; }); alert("1:"+str); str1 = str; } }); alert("2:"+str1); return str1;} 你初始化var str=' ';的时候,写str='a'做个测试,是不是执行后的结果为:在1 alert的时候是有值的,在2alert的时候则显示为a。如果是,就说明,ajax里赋值不是上面声明的那个str,ajax也属于一个方法,getCity是一个人方法,一个方法给另一个方法里的属性赋值是不行的。因为javascript是弱类型语言$(cityList).each(function(){ str+='<input name="" type="checkbox" value="'+this.CODE+'">'+this.NAME+''; });这里的str虽然没有写var ,但是实际上已经声明了,这个str是ajax里的局部变量,与外面那个str不是一个东西 function getCity(){ //var parentCode=provinceCode; var parentCode="440000"; var url = "${contextPath}<eoms:constant fieldName='QUERY_BAS_CODE_QUERY_CITY_URL' shortClassName='Url'></eoms:constant>"; var y=0; var str=''; $.ajax( { type:"post", url : url+".json", dataType : "json", async:false, //你在这里加上这么一句 data:{"parentCode":parentCode}, success:function(date) { var cityList=date.cityList; $(cityList).each(function(){ str+='<input name="" type="checkbox" value="'+this.CODE+'">'+this.NAME+''; }); alert("1:"+str); } }); alert("2:"+str); return str;} jQuery发送$.ajax请求其属性:async值:true;发送的请求时异步请求,缺省值为true;值:false,发送同步请求,会先执行完success回调方法里面之后才会执行下面的操作。这个就应该能解决你的问题了,试试。 async:false, 同步请求即可 jQuery操作动态输出的并列div怎么弄啊 window.print打印页面空白 这段Js火狐不支持。。请各位指教 代码真的需要这么多吗? 请问一下,javascript缓冲效果是用什么样的原理. 这是什么编码 ? 该死的木马 canvas 像素大小的问题 document.getElementById()----在线等 超基础问题 如何在鼠标移动时,让鼠标所处的坐标值显示在鼠标旁边 如何在js判断是哪个单选框被选中,并输出改行的值 字符过滤、web、java
//var parentCode=provinceCode;
var parentCode="440000";
var url = "${contextPath}<eoms:constant fieldName='QUERY_BAS_CODE_QUERY_CITY_URL' shortClassName='Url'></eoms:constant>";
var y=0;
var str1='';
$.ajax( {
type:"post",
url : url+".json",
dataType : "json",
data:{"parentCode":parentCode},
success:function(date) {
var cityList=date.cityList;
$(cityList).each(function(){
str+='<input name="" type="checkbox" value="'+this.CODE+'">'+this.NAME+'';
});
alert("1:"+str);
str1 = str;
}
});
alert("2:"+str1);
return str1;
}
如果是,就说明,ajax里赋值不是上面声明的那个str,ajax也属于一个方法,getCity是一个人方法,一个方法给另一个方法里的属性赋值是不行的。因为javascript是弱类型语言
$(cityList).each(function(){
str+='<input name="" type="checkbox" value="'+this.CODE+'">'+this.NAME+'';
});
这里的str虽然没有写var ,但是实际上已经声明了,这个str是ajax里的局部变量,与外面那个str不是一个东西
//var parentCode=provinceCode;
var parentCode="440000";
var url = "${contextPath}<eoms:constant fieldName='QUERY_BAS_CODE_QUERY_CITY_URL' shortClassName='Url'></eoms:constant>";
var y=0;
var str='';
$.ajax( {
type:"post",
url : url+".json",
dataType : "json",
async:false, //你在这里加上这么一句
data:{"parentCode":parentCode},
success:function(date) {
var cityList=date.cityList;
$(cityList).each(function(){
str+='<input name="" type="checkbox" value="'+this.CODE+'">'+this.NAME+'';
});
alert("1:"+str);
}
});
alert("2:"+str);
return str;
}
其属性:async
值:true;发送的请求时异步请求,缺省值为true;
值:false,发送同步请求,会先执行完success回调方法里面之后才会执行下面的操作。
这个就应该能解决你的问题了,试试。