0

我正在使用 jQUery AJAX 调用来分配表格单元格的值。该单元格是小计 mysubtotalB。这很好用,因为您可以清楚地看到结果。然而,在成功函数的末尾,包含了对另一个 jQuery 函数的调用。下一个函数应该获取刚刚分配给 mysubtotalB 的新值并将其添加到 Total A/表格单元格 mysubtotalA。

奇怪的是,即使在屏幕上将新值分配给 mysubtotalB 之后,通过 jQuery 语句返回的值还是 0,或原始值。玩了一会儿,我注意到如果我运行第二个 AJAX 调用并为 mysubtotalB 分配另一个值,我得到了以前的值。也就是说,jQuery 赋值返回的值总是一个旧值。猜测可能 DOM 在第一次调用时没有更新,或者可能与执行顺序有关,即使总数是在调用第二个函数之前分配的。

有谁知道这是为什么以及如何处理它。

<table>
<tr>
<th>Total A</th>
<td id='mysubtotalA'>0.00</td><!-- default state when page loads -->
</tr>
<tr>
<th>Total B</th>
<td id='mysubtotalB'>0.00<td><!-- default state when page loads -->
</tr>
<tr>
<th>Grand total</th>
<td id='mygrandtotal'>0.00<td><!-- default state when page loads -->
</tr>
</table>

$.ajax({
...
success: function(returned){
$('#mysubtotalB').html(returned);//works fine returned value now on screen in mysubtotalB
}
)};

<script>
...
var theReturnedValue = $('#mysubtotalB').html();
alert('theReturnedValue');// outputs "0" the first default value
</script>
4

2 回答 2

0

如果您在成功函数调用中分配了 theReturnedValue 的值怎么办?

var theReturnedValue; //declare outside function so you can use it later
$.ajax({
.....
success: function(returned){
$('#mysubtotalb').html(returned);//works fine returned value now on screen in mysubtotalB
theReturnedValue = returned; //assign the value
alert(theReturnedValue); //alert the user
}
于 2013-05-28T21:51:00.953 回答
0

让它工作的方法是设置一个对象并设置一个等于返回值的对象属性。于是在调用页面创建了一个对象,

var mynewobject = new Object();
mynewobject.sumA = 0;
mynewobject.sumB = 0;

然后在success:function()中,将相应属性的值设置为返回值:

...    
success:  function(returned){
mynewobject.sumB = returned;
....

然后在 .js 文件的嵌套函数循环中,将变量设置为该值;

....
var someothernewvar = mynewobject.sumB;
....

这样就能够使用 AJAX 调用设置值并可靠地传递多嵌套循环内的值。

于 2013-05-29T03:56:31.763 回答