如何在JavaScript中创建一个断行

时间:2017-11-24 11:04:12

标签: javascript html

在java中,我使用:

发送 30帧(30个字符串)
for(Frame frame : frames) {
    response.getWriter().write(frame.toString());
}

我在Ajax Post请求中获取它:

success: function (result) {
    console.log(result);
    document.getElementById('logs').innerHTML = '<br>' + result ;
}

HTML:

<div id="logs" class="text-center" style="margin-top: 25px;">

</div>

但是我把所有的行混合成了18行。好像<br>无效。

如何在HTML的每一行中准确打印每个字符串?

2 个答案:

答案 0 :(得分:0)

As&#34; Nick A&#34;在他的评论中提到,您应该将新结果附加到<div>元素的内容而不是替换它。所以你的Ajax函数应该是这样的(=替换为+=):

success: function (result) {
    console.log(result);
    document.getElementById('logs').innerHTML += '<br/>' + result ;
}

修改 主要问题是您将所有数据附加到服务器上的结果中,而不放置任何分隔符,以便您可以在客户端上将它们分开。您还可以尝试在服务器端代码中添加<br/>,如下所示:

for(Frame frame : frames) {
    response.getWriter().write(frame.toString() + "<br/>");
}

然后在客户端使用原始的ajax函数。

答案 1 :(得分:0)

有两种选择。首先,您可以在Java方法中构建响应时添加换行符...

response.getWriter().write("<br />" + frame.toString());

或(取决于您是否需要预先添加或附加换行符)

response.getWriter().write(frame.toString() + "<br />");

其次,您可以使用Javascript分割响应(假设它们是换行符)并使用Html换行符重新加入...

document.getElementById('logs').innerHTML = '<br>' + result.split("\n").join("<br/>");

第二个选项取决于响应数据的格式,因此第一个选项可能是您最好的选择。