如上述代码,当在函数外打印lists时,结果为空,但是在函数内可以正常打印。这是为什么呢?
因为
getJSON
是异步执行的,即
console
和
getData
是一起执行的,所以
getData
中的赋值运算赋值成功了,但是由于是一起执行,这时候的全局变量还没有被赋值,所以为空。可以给
console
加个定时器看一下,你就明白了。
解决方法:
强制同步,
$.ajaxSettings.async = true;
var lists = [];
getData();
function getData() {
$.ajaxSettings.async = false;
$.getJSON(url, function (res) {
lists = res.list;
console.log(lists) //可以正常打印
$.ajaxSettings.async = true;
console.log(lists); //可以正常打印
ps:代码不要放在
$(document).ready
或
window.onload
中,否则依然不能正常打印。
var lists = []; getData(); function getData() { $.getJSON(url, function (res) { lists = res.list; console.log(lists) //可以正常打印 }) } console.log(lists); //[]如上述代码,当在函数外打印lists时,结果为空,但是在函数内可以正常打印。这是为什么呢?原因:因为getJSO...
jQuery 中,会遇到$.get(url,data,callback,type) 或 $.post(url,data,callback,type) 返回值给
全局变量
赋值
的问题:
<script language="
JavaScript
">
var count= 1;
$.post("<%=path%>/AdminCenter/SysFunction/GetOrderNo",
{ parentCode: pc },
$.ajax({
url: "../TongJiBaoBiao/ZhengQueLv", success: function (res) {
json = JSON.parse(res);
alert("json[0].Column:" + json[0].Column1);
num = pa
for(i in a){
c=a[i].split("=")
if(c.length && c[0] !== "") b[decodeURIComponent(c.shift())]=decodeURIComponent(c.join("="))
使用$.
getJSON
对外部
变量
进行
赋值
时的问题
淘淘项目中商品信息和商品类目分别采用tb_item和tb_item_cat两张表进行保存,而在Service层进行查询时采用的是单表查询,只能查询出商品类目的ID,在EasyUI的表单中显示效果就有些不直观。查看
数据
库表tb_item的结构,其中的status的类型为tinyint,但是表单中的形式却表现为字符串。
查看了页面代码,发现状态一栏调...