繁体   English   中英

使用jQuery分配html值,但是之后jQuery返回旧值,为什么呢?

[英]using jQuery to assign an html value, but after that jQuery returns old value, why?

我正在使用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>

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

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
}

使它起作用的方法是设置一个对象,并将对象属性设置为等于返回值。 因此,在调用页面中创建了一个对象,

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

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

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

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

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

这样就可以通过AJAX调用设置值,并可靠地将值传递到多个嵌套循环中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM