一連の のそれぞれに対して ajax 呼び出しを行い、td の内部 html を ajax 呼び出しから処理されたデータに置き換えようとしています。
私は e コマース CMS システムにロックされているため、私の ajax 呼び出しは次の文字列を含む完全なページです: **!#249,00!#349,00**!#5 ltr!#**
以下のコードは、これを次のように分割します
。
var plabels = ['','5 ltr',''];
注: pprices の数字は、ピリオドの代わりにコンマを使用します。
問題は、最後の行: $(this).html(endprice); です。新しい値ではなく、デフォルト値 '999999' でセルを埋めます。ajax呼び出しが完了する前に行が実行されるようです。
for ループで見つかったデータが確実に td に送信されるようにするにはどうすればよいですか?
私の現在のコードはこれです:
$(".pricetag").each( function() {
var pgroup = $(this).attr('group');
var plink = "Default.aspx?ID=14&groupid=" + pgroup + "&mode=-1";
var endprice = "999999";
var endlabel = "";
$.ajax({url:plink,done:function(result){
pprices = result.split("**")[1];
plabels = result.split("**")[2];
prices = pprices.split("!#");
labels = plabels.split("!#");
for(i=0;i<prices.length;i++) {
j=parseInt(prices[i]); k=parseInt(endprice);
if(j!=0 && j<k) { endprice = prices[i]; endlabel = labels[i]; }}
}});
$(this).html(endprice);
});
HTML:
<table><tr>
<td> label </td>
<td class="pricetag" group="<!--@Ecom:Group.ID-->"> price </td>
</tr></table>
<!--@Ecom:Group.ID--> は、e コマース システムから ID を取得します。