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, 同步请求即可 IE6下div中用iframe空白的原因 如何动态设定输入栏的背景色? JS视频第二讲 JavaScript变量和数据类型 怎么把这两个asp文件中的vbscript转为javascript? 这段js代码是什么意思?? 寻求一个JSP开发网站的实例 支付宝在IE下打开有个绿色的边框,是通过什么技术实现的啊 请教一段程序!!! 弹出页时,父页回到顶部的问题 关于table的一些问题 如何在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回调方法里面之后才会执行下面的操作。
这个就应该能解决你的问题了,试试。