2011-06-27 58 views
-1
<script> 
    $.ajax 
     ({ 
      url: "../getStatus/", 
      dataType: 'json', 
      success: function(json) 
      {    
       $('#ajaxLog').html(json.status+"<br/>"); 
      } 
     }); 

</script> 

//Need this section to make a new line when refreshed 
<div id = ajaxLog style="width:50%"></div> 

這需要是累積的,返回到網頁的消息。每次進程啓動/停止/掛起時都會顯示。顯示的消息在保持狀態時不會說停止/開始/等等 - 而是每當這些狀態改變時顯示,而不會不斷地重新顯示 - 不像jquery.append()那樣。從ajax請求返回時,讓jQuery在DIV內創建一個新行

所需

started 10:48 
stoped 10:50 
Started 12:53 
suspended 3:34 
Started 3:40 

不希望

started 10:48 
started 10:48 
started 10:48 
started 10:48 
started 10:48 
started 10:48 
started 10:48 
stoped 10:50 
. 
. 

(如追加()會做)

+1

我注意到您已將'
'添加到您的HTML中。如果這是你所報告的不工作,則用'
' –

+0

替換它你認爲'累積返回信息'是什麼意思?對不起,這沒有意義。你能否包含一些你期望喲的例子。 –

回答

9
<script> 
    //Use this 
    last=null; 
    $.ajax 
       ({ 
        url: "../getStatus/", 
        dataType: 'json', 
        success: function(json) 
       { 
         //Replace this line 
         //$('#ajaxLog').html(json.status+"<br/>"); 

         //with this: 
         if(last!=json.status) 
         { 
          $('#ajaxLog').append(json.status+"<br/>"); 
          //or: $('#ajaxLog').append('<p>'+json.status+'</p>'); 
          last=json.status; 
         } 
       } 
      }); 

</script> 

//Need this section to make a new line when refreshed 
<div id = ajaxLog style="width:50%"></div> 
5

在HTML中沒有這樣的東西新行。你可以使用一個<br/>標籤實現新行語義:

$('#ajaxLog').append(json.status + '<br/>'); 

或者將內容放入一個div:

$('#ajaxLog').append('<div>' + json.status + '</div>'); 

而且你應該使用,而不是.html().append()方法,以避免覆蓋每調用一次,就調用ajaxLog div的內容。

+1

試圖 - 不起作用。謝謝 – stackoverflow

+0

@ Mrshll187,你應該使用'.append()'而不是'.html()'。 –

0

在HTML中添加換行符?

success: function(json) 
{ 
    $('#ajaxLog').html("<br />" + json.status+); 
} 
+0

這並不奏效。儘管謝謝你的迴應 – stackoverflow

0

除非我誤讀了這一點,您呼叫的HTML()方法,將取代div的全部內容。你真的想把結果追加到一個新的行裏嗎?

我很抱歉,如果我沒有正確理解問題。

0

不應該AJAX設置有一個額外的

data: ''

所以它看起來像

url: '../getStatus/', data: '', dataType: 'json', success: ...

?我很確定我已經讀過這個地方。