JQUERY 数组循环内使用GET与ASPX交互?
有一个数组
如:1,2,3,4,5,6
这些数字对应了数据库中一个表中的ID
比如:数据库中ID对应的值 为:9,8,7,6,5
在循环的时候.想根据循环内,根据这些数字读取出数据库中的值
var str = "";
for (var i = 0; i < arrValue.length - 1; i++) {
var newid = getid(parseInt(arrValue[0]));
str +="<div>"+newid+"</div>"
}
return str;
function getid(itemid){
$.get("/getNewPrice.aspx", {id:itemid, time:"2pm" },
function(data){
return data;
});
}
结果却输出的是undefined..没任何数据
请问这是为什么?哪里不对吗.请大哥们帮忙
------解决方案--------------------
探讨 var str = ""; for (var i = 0; i < arrValue.length - 1; i++) { var newid = getid(parseInt(arrValue[0])); str +="<div>"+newid+"</div>" } return str; function getid(itemid){ $.get("/getNewPrice.aspx", {id:itemid, time:"2pm" }, function(data){ return data; }); }
------解决方案--------------------
function getid(itemid){
$.get("/getNewPrice.aspx", {id:itemid, time:"2pm" },
function(data){
return data; });
}
任何的地方调用你这个getid方法都是获取不到这个return值得。
因为get方法里的function和外面的function是完全不同的。
ajax请求是异步的 不会阻塞浏览器的线程,
如果想保存多次ajax请求所返回的数据,那就使用全局变量。
具体方法 Lisliefor已经给出。
你可以用下面的代码测试下
var id = '123';
function getid(itemid) {
$.get("/getNewPrice.aspx", { id: itemid, time: "2pm" },
function (data) {
id = data; });
return id; }
var test = getid(1);
alert(test);
这里弹出的test永远都只会是“123”,因为函数getid不会等到get请求完后,在return id,
他们是并行的。