Я хочу иметь возможность сказать
$(someElem).text('this\n has\n newlines);
и отображается с новой строкой в браузере. Единственный обходной путь, который я нашел, - установить для свойства css 'white-space' значение 'pre' на someElem. Это почти работает, но тогда у меня есть досадно большой отступ между текстом и верхней частью someElem, даже когда я устанавливаю отступ на 0. Есть ли способ избавиться от этого?
javascript
jquery
html
Джо Армстронг
источник
источник
<pre>
тегами (и использование .html () вместо .text ()), на мой взгляд, является самым простым и лучшим решением для сохранения разрывов строк из текстового файла или из простого текста (это предлагается ответом Карима ниже). ОДНАКО: более новая альтернатива этому - использовать,white-space: pre-wrap;
как предложено в ответеappend()
вместоtest()
и<br/>
вместо\n
? вот так -$(someElem).append("this <br/> has <br/> newlines");
Ответы:
Это 2015 год. Правильный ответ на этот вопрос на данном этапе - использовать CSS
white-space: pre-line
илиwhite-space: pre-wrap
. Чисто и элегантно. Самая низкая версия IE, поддерживающая эту пару, - 8.https://css-tricks.com/almanac/properties/w/whitespace/
PS
До тех пор, пока CSS3 не станет обычным явлением,вам, вероятно, придется вручную обрезать начальные и / или конечные пробелы.источник
new Date("2016");
Если вы храните объект jQuery в переменной, вы можете сделать это:
Если хотите, вы также можете создать функцию для этого с помощью простого вызова, как это делает jQuery.text ():
источник
Вот что я использую:
источник
text.split(/\\n/)
, или дажеtext.split(/\\\\n|\\n|\n/)
. Я столкнулся с этим при передаче текста в формате JSON с помощью API, который встроил буквальные\n
управляющие символы в строки.Кроме того , попробуйте использовать ,
.html
а затем завернуть с<pre>
тегами:источник
Вы можете использовать
html
вместоtext
и заменить каждое вхождение\n
с<br>
. Однако вам нужно будет правильно экранировать свой текст.источник
text
то время как этот ответ используетсяhtml
напрямую.Я бы посоветовал работать с
someElem
элементом напрямую, так как замена с.html()
заменяет также другие HTML-теги в строке.Вот моя функция:
Назовите это:
источник
Попробуй это:
источник
Возможно, лучшим решением будет использование свойства пустого пространства CSS. Используйте Firebug или Chrome Developer Tools, чтобы определить источник наблюдаемых дополнительных отступов.
источник