问题简化:
<script type="text/javascript"> var a=1 ; function fun1(){ a=2; } function fun2(){ fun1(); alert(a); } </script>
存在全局变量a,需要在函数fun1中为变量a赋值,并使该值在函数fun2中同样生效。
问题扩展:
<script type="text/javascript"> var a=1 ; function fun1(){ $.ajax({ type : "post", url : "read_datas", data : { }, dataType : "json", //返回数据形式为json async: false, //同步传输,并添加返回值,返回值应为已定义的全局变量 如a success : function(data) { var tmp = JSON.parse(data); a = tmp.nodes; alert(nodes[1].ip); } }); return a; } function fun2(){ fun1(); alert(a); } </script>
如代码所示,需要注意的是ajax中 async: false 和 return
第一点 ajax默认为异步操作,因此需要定义async: false实现同步操作
第二点 ajax后加入return a;
注意return的应为全局变量名a