jQuery AJAX 呼び出しを使用してテーブル セルの値を割り当てています。セルは小計、mysubtotalB です。結果がはっきりとわかるので、それはうまく機能します。ただし、success 関数の最後には、別の jQuery 関数の呼び出しが含まれています。次の関数は、mysubtotalB に割り当てられたばかりの新しい値を取得し、Total A/テーブル セル mysubtotalA に追加することになっています。
奇妙な点は、新しい値が画面上で mysubtotalB に割り当てられた後でも、jQuery ステートメントを介して返される値が 0 または元の値であることです。しばらく遊んでみると、2 番目の AJAX 呼び出しを実行して別の値を mysubtotalB に割り当てると、以前の値が取得されることに気付きました。つまり、jQuery 割り当てによって返される値は、常に 1 つ古い値でした。2番目の関数の呼び出しが行われる前に合計が割り当てられたとしても、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>