2017-10-18 54 views
0

如何將AJAX數據放入</span>之後?使用jQuery設置SPAN元素後的值

$(function() { 
    function check_messages() { 
    $.ajax({ 
     url: '/check/', 
     cache: false, 
     success: function (data) { 
     $('.here').text(data) 
     complete: function() { 
      window.setTimeout(check_messages, 20000); 
     } 
    }); 
    }; 
    check_messages(); 
}); 
<button type="button" class="navbar-toggle collapsed msg" data-toggle="collapse" data-target="#search"> 
    <span class="glyphicon glyphicon-envelope here" aria-hidden="true"></span> 
    HERE ajax data 
</button> 
+3

嘗試'$(」在這裏。 ').after(data)' –

+0

您的AJAX調用缺少'}'關閉'success'塊。這只是一個錯誤的問題嗎? –

+0

@RakeshRaj他希望在跨度之後設置數據結果,而不是在裏面。 –

回答

1

其實你的片段是馬車。例如:complete回調位於success回調的內部,或者可以說最外層的函數未關閉,具體取決於您想要如何讀取它。

在這裏,我們去了消毒版本包括jQuery after() method你喜歡的DOM元素之後,將數據添加:

$(function() { 
    function check_messages() { 
     $.ajax({ 
      url: '/check/', 
      cache: false, 
      success: function (data) { 
       // instead of $('.here').text(data) 
       $('.here').after(data) 
      }, 
      complete: function() { 
       window.setTimeout(check_messages, 20000); 
      } 
     }); 
    }; 
    check_messages(); 
}); 

編輯:

$(function() { 
    var $CheckMessages = $('<span/>').insertAfter('.here'); 
    function check_messages() { 
     $.ajax({ 
      url: '/check/', 
      cache: false, 
      success: function (data) { 
       $CheckMessages.html(data); 
       // if data is text only (no HTML) it would be more secure to use .text() method... 
       // $CheckMessages.text(data); 
      }, 
      complete: function() { 
       window.setTimeout(check_messages, 20000); 
      } 
     }); 
    }; 
    check_messages(); 
}); 
+0

sry現在只能看到你的post.actually它正在工作,但問題是'數據'是覆蓋現有的。例如:我在''之後得到通知'。像這樣** 1 **所以在10秒鐘後它再次讀取後端數據並更新。現在的問題是** 11 **。它每隔10秒就一次又一次地寫信。謝謝你的帖子,我認爲'成功' – Akash

+0

嘿@Akash檢查我的編輯 - 這應該做到這一點...... – Axel