我正在尝试为一系列 ' 中的每一个进行 ajax 调用,并将 td 的内部 html 替换为来自 ajax 调用的已处理数据。
由于我被锁定到电子商务 cms 系统,我的 ajax 调用是一个完整的页面,其中包含以下字符串:**!#249,00!#349,00**!#5 ltr!#**
下面的代码将其拆分为:
var pprices = ['','249,00','349,00'];
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--> 从电子商务系统中获取一个 id。