用新条目改变div的值,不要追加

我对编码完全陌生。 请help.I获取tweet文本使用node.js和显示使用HTML。 当我input新的文本时,结果应该replace#tweets中的更早的结果,而不是附加到它

<!DOCTYPE html> <html> <head> </head> <body> <form> #<input type="text" id="tag" class="hash"/> <button>submit</button> </form> <div id="tweets"></div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script> <script src="/socket.io/socket.io.js"> </script> <script> var socket = io.connect('/link'); $('.hash').on('keypress',function(){ setTimeout(function(){ $('#tweet').empty(); socket.emit('message', $('#tag').val()); },2000); return; }); socket.on('message', function(msg){ $('#tag').val(''); $('#tweet').empty(); $('#tweets').after($('<div>').text(msg)); }); </script> </body> <html> 

.htmlreplace.after

 $('#tweets').html($('<div>').text(msg)); 

如果我正确地理解你,只需使用textinnerHTML 。 例如:

 ... socket.on('message', function(msg){ $('#tag').val(''); $('#tweet').html(msg); //OR $('#tweet').text(msg); }); ... 

也有可能是拼写错误的JQueryselect器? 我找不到元素“#tweet”。 它出现在你的超时和套接字事件处理程序中。 我亲自去这个,而不是,如果有一个select器拼写问题。

 $("<div />", { text: msg }).appendTo($("#tweets").empty()); 

编辑:我喜欢SlyBeaver的要点。 我以为你需要一个内部div。 而不是处理.empty().append().chain().a().bunch().of().stuff() ,我只是为了纯文本:

 $("#tweets").text(msg); 

或者如果微博包含HTML,使用这个或它不会被parsing为:

 $("#tweets").html(msg); 

更改

  $('#tweets').after($('<div>').text(msg)); 

在jQuery中使用.html()

 $('#tweets').html($('<div>').text(msg)); 
 document.getElementById('tweets').innerHTML = 'Your content';