我正在做一个聊天应用程序,需要附加消息。问题是新邮件都是内联的,我需要一种在邮件发送后创建新行的方法,而不是删除前一条消息。

我用过'\ n',但它只提供空格。我尝试使用innerHTML,但它替换了所有内容,因此以前的消息丢失了。

我想使用香草js解决此问题。

本质上,我想将这行Jquery转换为js:

socket.on('chat message', function(msg){
  $('#messages').append($('<li>').text(msg));
});

最佳答案

将新行包装在块级元素中(在此示例中,我使用了section)。为了避免每次添加行时都清除整个日志,可以使用insertAdjacentHTML,它允许您直接指出HTML的结尾位置。



const area = document.querySelector('textarea');
const save = document.querySelector('button');
const log = document.querySelector('#log');

save.addEventListener('click', handleClick, false);

function handleClick() {
  const { value } = area;
  const html = `<section>${value}</section>`;
  log.insertAdjacentHTML('beforeend', html);
  area.value = '';
}

<textarea></textarea>
<button>Save</button>
<h4>Log</h4>
<main id="log" />

关于javascript - 在事件触发后,如何添加新的换行符并保留以前的换行符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57522222/

10-11 12:52