Показать разрыв строки в теге <div>из базы данных - PullRequest
3 голосов
/ 16 сентября 2010

Мне нужно отобразить статью из базы данных внутри тега

. Эта статья была вставлена ​​в базу данных из текстовой области. Моя проблема: я не мог отобразить точно структуру, которую я вставил из текстовой области (включая разрыв строки)

Я попытался с помощью приведенного ниже кода заменить символ ввода на тег
, но он не сработал

<div id="tmpId">${f:h(dto.accPassage)}</div>

<script>
    $(function(){
        $('#tmpId').html($('#tmpId').html().replace(/\n/g, '<br />'));
    })
</script>

Интересно, кто-нибудь может дать мне несколько советов, чтобы решить эту проблему?

Большое спасибо.

Ответы [ 4 ]

9 голосов
/ 16 сентября 2010

, если вы хотите, чтобы оно было точно , как в базе данных, а затем просто отобразите его внутри тега <pre> вместо <div>.

<code><pre id="tmpId">${f:h(dto.accPassage)}

Это сохранит точное форматирование во вложенном текстовом блоке.

2 голосов
/ 16 сентября 2010

Поскольку вы извлекаете его из БД, почему он выполняется на стороне клиента и не выполняет замену, как только вы извлекаете данные из БД? Не уверен, что вы используете (хотя это не имеет значения, поскольку это может быть сделано на любом языке), но в PHP, предполагая, что $output - это результат вашей БД, это будет так же просто, как

$output = nl2br($output);

Надеюсь, это поможет!

0 голосов
/ 16 сентября 2010

Поскольку вы используете Java, вы всегда можете написать что-то вроде следующего, чтобы заменить новые строки после извлечения данных из базы данных.

public static String nl2br(String s) {
    return s.replaceAll("\n","<br/>");
}
// usage
nl2br("some\ntext"); //will return "some<br/>text"
0 голосов
/ 16 сентября 2010

Даешь <br> без конечной косой черты.

...