【问题标题】:New lines in text within a divdiv 内文本中的新行
【发布时间】:2012-07-10 12:27:18
【问题描述】:

当我放置通过 ajax 调用加载的文本时,我遇到了一个小问题。

我从 textarea 获取内容并将其存储在我的数据库中,当我想在 div 中显示文本时,它不尊重新行,因此所有文本都是连续的。

下面的代码是一个小例子:

$(function() {
    $('.buttonA').click(function() {
        $('.message').html($('textarea[name="mensaje"]').val());
    });
});
.message {
    width:300px;
    height:200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<textarea name="mensaje" class="new_message_textarea" placeholder="enter message..."></textarea>
<button class="buttonA">Enter</button>
<div class="message"></div>

如果你输入一些带有一些新行的文本,一旦你点击按钮,文本就会显示在 div 中,并且会看到没有显示新行。

我该如何解决这个问题?

【问题讨论】:

    标签: html textarea


    【解决方案1】:

    我认为实现这一点的更好方法是添加

    white-space: pre
    

    white-space: pre-wrap
    

    样式到你的 div。 见HTML - Newline char in DIV content editable?

    【讨论】:

    【解决方案2】:

    将此添加到 CSS 中:

    white-space: pre-line
    

    【讨论】:

    【解决方案3】:

    换行符对 html 渲染没有任何作用。在你的 js 中改变这个:

    $('.message').html($('textarea[name="mensaje"]').val());
    

    ...到这个:

    $('.message').html($('textarea[name="mensaje"]').val().replace(/\n/g, "<br />"));
    

    ...它会用适当的 html 换行符替换你的换行符

    【讨论】:

    • 是的,我知道,但是系统现在不让我这样做,它需要几分钟。我会做的......当然!
    猜你喜欢
    • 2014-09-17
    • 2013-12-23
    • 2011-09-06
    • 2013-12-05
    • 1970-01-01
    • 2016-10-15
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多