Eu quero ser capaz de dizer
$(someElem).text('this\n has\n newlines);
e é renderizado com novas linhas no navegador. A única solução alternativa que encontrei é definir a propriedade css 'espaço em branco' como 'pre' em someElem. Isso quase funciona, mas eu tenho um padding irritantemente grande entre o texto e o topo de algumElem, mesmo quando eu defino o padding como 0. Existe uma maneira de me livrar disso?
javascript
jquery
html
Joe Armstrong
fonte
fonte
<pre>
tags (e usar .html () em vez de .text ()) é a melhor e mais fácil solução para manter quebras de linha de um arquivo de texto ou de texto simples em minha opinião (isso é sugerido pela resposta de Karim abaixo). NO ENTANTO: A alternativa mais recente é usarwhite-space: pre-wrap;
como sugerido na resposta deappend()
vez detest()
e em<br/>
vez de\n
? assim -$(someElem).append("this <br/> has <br/> newlines");
Respostas:
É o ano de 2015. A resposta correta para essa pergunta neste momento é usar CSS
white-space: pre-line
ouwhite-space: pre-wrap
. Limpo e elegante. A versão mais baixa do IE compatível com o par é a 8.https://css-tricks.com/almanac/properties/w/whitespace/
PS
Até que o CSS3 se torne comum,você provavelmente precisará cortar manualmente os espaços em branco iniciais e / ou finais.fonte
new Date("2016");
Se você armazenar o objeto jQuery em uma variável, poderá fazer isso:
Se preferir, você também pode criar uma função para fazer isso com uma chamada simples, assim como jQuery.text ():
fonte
Aqui está o que eu uso:
fonte
text.split(/\\n/)
, ou mesmotext.split(/\\\\n|\\n|\n/)
. Eu encontrei isso ao passar texto em formato JSON com uma API que incorporava\n
caracteres de controle literais em strings.Como alternativa, tente usar
.html
e envolver com<pre>
tags:fonte
Você pode usar em
html
vez detext
e substituir cada ocorrência de\n
por<br>
. Você terá que escapar corretamente do seu texto.fonte
text
enquanto esta resposta usahtml
diretamente.Eu sugeriria trabalhar com o
someElem
elemento diretamente, como substitutos com.html()
substituiriam outras tags HTML na string também.Aqui está minha função:
Ligue para:
fonte
Experimente isto:
fonte
Usar a propriedade de espaço em branco do CSS é provavelmente a melhor solução. Use o Firebug ou as Ferramentas do desenvolvedor do Chrome para identificar a origem do preenchimento extra que você estava vendo.
fonte