我在JS文件的最顶部定义了一个变量var totaPage=0;
然后执行了一个ajax,在回调函数里想个totaPage赋值应该怎么写
success:function(data){
totaPage=data.totapage;
}
我这样些不行
你这样是没有什么问题的 能赋值
首先你要确定他们在同一个函数下面,因为var定义是局部变量,如果不在同一个function中可以使用全局变量 或者在function内部定义变量 但是我估计你一会可能要用这个变量,所以建议你把VAR 去掉 试试看
返回值先非空判断下
确认是int类型的情况下
success:function(data){
totaPage=parseInt(data.totapage);
}
赋值不成功,你可以先确定一下返回的data中是否有数据,如果有数据,是否js获取的方式不对
你没有说出不行出现的情况是怎么样!!!???
按你描述变量totaPage定义在最顶部,所以是个全局变量。但ajax默认是异步的,所以我猜你说的不行,应该是异步的问题。
var totaPage=data.totapage;
应该是:data里面没有totapage这属性
这个data可能是个json字符串,需要转换成json数组。
你要确定data有没有数据,data.totapage存不存在.有没有值啊
先确定data.totapage存不存在,再看一下totaPage所在的作用域,还有一点就是在请求外面打印totaPage是不行的,系统会先执行你打印的那一句,这个时候还没有赋值
先判断数据存在与否
你应该是没有成功赋值
打个断点走到data.totapage,需要用eval转换一下在赋值,但是有可能因为异步的问题data.totapage的值还没有附上就过去了,解决办法:给页面赋值语句写到success下面
我觉得是因为ajax默认是异步而导致的问题,你可把async参数设置成false,设置成同步,这样会顺序执行你的代码
totapage是全局变量,所以问题出在data.totapage上你应该先console.log(data.totapage)确定你拿到的是正确的数据,再做判断
你先别赋值0 直接赋值"空"就行
如果排除作用域的问题,很大可能是 异步 data 为空 或者 data 没有totaPage的属性,
看看data.totapage数据是否存在,如果存在,再看看totaPage作用域范围