1
2
3
4
5
6
7
8
|
var
optionStr=
""
;
$.getJSON(
"/index.php/default/query/getCabinetRow/row_war_id/"
+war_resource_id,
function
(data){
$.each(data,
function
(i,item){
optionStr+=
"<option value='"
+item.row_id+
"'>"
+item.row_name+
"</option>"
;
});
alert(optionStr);
});
alert(optionStr);
|
上一个alert可弹出内容,有值
但下一个alert就为空
这是什么原因???
答:
因为它是异步执行的,
所有最外面的alert会先执行。
所以你就看到外面的是空的了。
同步执行就不会有问题了,
参考下面代码,你就明白了:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
HTML
>
<
HEAD
>
<
TITLE
> New Document </
TITLE
>
<
META
NAME
=
"Generator"
CONTENT
=
"EditPlus"
>
<
META
NAME
=
"Author"
CONTENT
=
""
>
<
META
NAME
=
"Keywords"
CONTENT
=
""
>
<
META
NAME
=
"Description"
CONTENT
=
""
>
<
script
language
=
"javascript"
type
=
"text/javascript"
src
=
"jquery-1.4.2.js"
></
script
>
</
HEAD
>
<
BODY
>
<
SCRIPT
LANGUAGE
=
"JavaScript"
>
var d = "";
<!--
//同步 async: false
//默认 async: true
$.ajax({url: "http://www.baidu.com", async: false, success: function(data) {
d = data;
alert(d);
}});
alert(d);
//-->
</
SCRIPT
>
</
BODY
>
</
HTML
>
|