2013-08-22 29 views
0

基本上我需要添加一个标题,内容和页脚消息。来自循环的JQuery内容最后追加

内容来自一个循环,并由于某种原因它最后追加。

function sendMail(){ 

    $("#textareaContainer").append('<textarea id="someTextarea" rows=12 class="span7">Some header text that is needed</textarea>'); 

    for (var i=0;i<idToUse.length;i++){ 
     $.post("actions.php", "do=contentFromPhp"+"&id="+idToUse[i],0,"json").done(function(result) { 
     for (var i=0;i<result.length;i++){ 
     $("#someTextarea").append("\r"+result[i].theContent); 
     } 
    idToUse = []; 
    }); 

    } 
    $("#someTextarea").append("\rSome footer text that is needed!"); 

} 

的电流输出为:

Some header text that is needed 
Some footer text that is needed! 
Content From loop 1 
Content From loop 2 

我需要它是:

Some header text that is needed 
Content From loop 1 
Content From loop 2 
Some footer text that is needed! 

回答

0

这是因为你正在使用AJAX来填充数据,注意:即使这可能不是给出确切的结果,因为ajax请求可能以不同的顺序复原

function sendMail(){ 

    $("#textareaContainer").append('<textarea id="someTextarea" rows=12 class="span7">Some header text that is needed</textarea>'); 

    var xhrs = [], xhr; 
    for (var i=0;i<idToUse.length;i++){ 
     xhr = $.post("actions.php", "do=contentFromPhp"+"&id="+idToUse[i],0,"json").done(function(result) { 
      for (var i=0;i<result.length;i++){ 
       $("#someTextarea").append("\r"+result[i].theContent); 
      } 
      idToUse = []; 
     }); 
     xhrs.push(xhr) 
    } 

    $.when.apply($, xhrs).then(function(){ 
     $("#someTextarea").append("\rSome footer text that is needed!"); 
    }) 

} 
0

您需要添加页脚在AJAX回调函数:

for (var i=0;i<idToUse.length;i++){ 
    $.post("actions.php", { 
     do: "contentFromPhp", 
     id: idToUse[i] 
    }, 0, "json").done(function(result) { 
     for (var i=0;i<result.length;i++){ 
      $("#someTextarea").append("\r"+result[i].theContent); 
     } 
     $("#someTextarea").append("\rSome footer text that is needed!"); 
     idToUse = []; 
    }); 
} 

我也改变了你的数据从一个字符串对象,使jQuery将正常进行URL编码。