关于JS变量赋值的问题

我在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作用域范围